@Reference(authors="J. Schneider, M. Vlachos", title="Fast parameterless density-based clustering via random projections", booktitle="Proc. 22nd ACM Int. Conf. on Information & Knowledge Management (CIKM 2013)", url="https://doi.org/10.1145/2505515.2505590", bibkey="DBLP:conf/cikm/SchneiderV13") public class FastOPTICS<V extends NumberVector> extends AbstractAlgorithm<ClusterOrder> implements OPTICSTypeAlgorithm
Note that this is not FOPTICS as in "Fuzzy OPTICS"!
Reference:
J. Schneider, M. Vlachos
Fast parameterless density-based clustering via random projections
Proc. 22nd ACM Int. Conf. on Information and Knowledge Management (CIKM 2013)
This is based on the original code provided by Johannes Schneider, with ELKIfications and optimizations by Erich Schubert.
Modifier and Type | Class and Description |
---|---|
static class |
FastOPTICS.Parameterizer<V extends NumberVector>
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
(package private) RandomProjectedNeighborsAndDensities<V> |
index
Index.
|
(package private) DoubleDataStore |
inverseDensities
Inverse Densities correspond to average distances in point set of
projections
|
private static Logging |
LOG
Class logger.
|
(package private) int |
minPts
MinPts parameter.
|
(package private) DataStore<? extends DBIDs> |
neighs
neighbors of a point
|
(package private) ClusterOrder |
order
Result: output order of points
|
(package private) ModifiableDBIDs |
processed
processed points
|
(package private) WritableDoubleDataStore |
reachDist
Result: reachability distances
|
static double |
UNDEFINED_DISTANCE
undefined value for (reachability/average) distance
|
ALGORITHM_ID
Constructor and Description |
---|
FastOPTICS(int minpts,
RandomProjectedNeighborsAndDensities<V> index)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected void |
expandClusterOrder(DBID ipt,
ClusterOrder order,
DistanceQuery<V> dq,
FiniteProgress prog)
OPTICS algorithm for processing a point, but with different density
estimates
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
int |
getMinPts()
Get the minpts value used.
|
ClusterOrder |
run(Database db,
Relation<V> rel)
Run the algorithm.
|
run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
public static final double UNDEFINED_DISTANCE
ClusterOrder order
WritableDoubleDataStore reachDist
ModifiableDBIDs processed
DoubleDataStore inverseDensities
int minPts
RandomProjectedNeighborsAndDensities<V extends NumberVector> index
public FastOPTICS(int minpts, RandomProjectedNeighborsAndDensities<V> index)
minpts
- Minimum number of neighbors.index
- Indexpublic ClusterOrder run(Database db, Relation<V> rel)
db
- Databaserel
- Relationprotected void expandClusterOrder(DBID ipt, ClusterOrder order, DistanceQuery<V> dq, FiniteProgress prog)
ipt
- Pointorder
- Cluster order (output)dq
- Distance queryprog
- Progress for logging.public int getMinPts()
OPTICSTypeAlgorithm
getMinPts
in interface OPTICSTypeAlgorithm
public TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<ClusterOrder>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<ClusterOrder>
Copyright © 2019 ELKI Development Team. License information.