@Reference(authors="J. Schneider and M. Vlachos", title="Fast parameterless density-based clustering via random projections", booktitle="Proc. 22nd ACM international conference on Conference on Information & Knowledge Management (CIKM)", url="http://dx.doi.org/10.1145/2505515.2505590") public class RandomProjectedNeighborsAndDensities<V extends NumberVector> extends Object
FastOPTICS
Reference:
J. Schneider and M. Vlachos
Fast parameterless density-based clustering via random projections
Proc. 22nd ACM international conference on Conference on Information &
Knowledge Management (CIKM)
Modifier and Type | Class and Description |
---|---|
static class |
RandomProjectedNeighborsAndDensities.Parameterizer
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
(package private) long |
distanceComputations
Count the number of distance computations.
|
private static Logging |
LOG
Class logger.
|
private static int |
logOProjectionConst
Default constant used to compute number of projections as well as number of
splits of point set, ie. constant *log N*d
|
(package private) int |
minSplitSize
minimum size for which a point set is further partitioned (roughly
corresponds to minPts in OPTICS)
|
(package private) Relation<V> |
points
entire point set
|
private static String |
PREFIX
Statistics logging prefix.
|
(package private) DoubleDataStore[] |
projectedPoints
all projected points
|
(package private) RandomFactory |
rnd
Random factory.
|
private static float |
sizeTolerance
Sets used for neighborhood computation should be about minSplitSize Sets
are still used if they deviate by less (1+/- sizeTolerance)
|
(package private) ArrayList<ArrayDBIDs> |
splitsets
sets that resulted from recursive split of entire point set
|
Constructor and Description |
---|
RandomProjectedNeighborsAndDensities(RandomFactory rnd)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
DoubleDataStore |
computeAverageDistInSet()
Compute for each point a density estimate as inverse of average distance to
a point in a projected set
|
void |
computeSetsBounds(Relation<V> points,
int minSplitSize,
DBIDs ptList)
Create random projections, project points and put points into sets of size
about minSplitSize/2
|
DataStore<? extends DBIDs> |
getNeighs()
Compute list of neighbors for each point from sets resulting from
projection
|
void |
logStatistics()
Log some statistics.
|
int |
splitByDistance(ArrayModifiableDBIDs ind,
int begin,
int end,
DoubleDataStore tpro,
Random rand)
Split the data set by distances.
|
int |
splitRandomly(ArrayModifiableDBIDs ind,
int begin,
int end,
DoubleDataStore tpro,
Random rand)
Split the data set randomly.
|
void |
splitupNoSort(ArrayModifiableDBIDs ind,
int begin,
int end,
int dim,
Random rand)
Recursively splits entire point set until the set is below a threshold
|
private static final Logging LOG
private static final String PREFIX
private static final int logOProjectionConst
private static final float sizeTolerance
int minSplitSize
Relation<V extends NumberVector> points
ArrayList<ArrayDBIDs> splitsets
DoubleDataStore[] projectedPoints
RandomFactory rnd
long distanceComputations
public RandomProjectedNeighborsAndDensities(RandomFactory rnd)
rnd
- Random factory.public void computeSetsBounds(Relation<V> points, int minSplitSize, DBIDs ptList)
points
- points to processminSplitSize
- minimum size for which a point set is further
partitioned (roughly corresponds to minPts in OPTICS)ptList
- Points that are to be projectedpublic void splitupNoSort(ArrayModifiableDBIDs ind, int begin, int end, int dim, Random rand)
ind
- points that are in the current setbegin
- Interval begin in the ind arrayend
- Interval end in the ind arraydim
- depth of projection (how many times point set has been split
already)rand
- Random generatorpublic int splitRandomly(ArrayModifiableDBIDs ind, int begin, int end, DoubleDataStore tpro, Random rand)
ind
- Object indexbegin
- Interval beginend
- Interval endtpro
- Projectionrand
- Random generatorpublic int splitByDistance(ArrayModifiableDBIDs ind, int begin, int end, DoubleDataStore tpro, Random rand)
ind
- Object indexbegin
- Interval beginend
- Interval endtpro
- Projectionrand
- Random generatorpublic DataStore<? extends DBIDs> getNeighs()
public DoubleDataStore computeAverageDistInSet()
public void logStatistics()
Copyright © 2015 ELKI Development Team, Lehr- und Forschungseinheit für Datenbanksysteme, Ludwig-Maximilians-Universität München. License information.