V
- the type of NumberVector handled by this Algorithm@Title(value="DeliClu: Density-Based Hierarchical Clustering") @Description(value="Hierachical algorithm to find density-connected sets in a database based on the parameter \'minpts\'.") @Reference(authors="Elke Achtert, Christian B\u00f6hm, Peer Kr\u00f6ger", title="DeLiClu: Boosting Robustness, Completeness, Usability, and Efficiency of Hierarchical Clustering by a Closest Pair Ranking", booktitle="Proc. 10th Pacific-Asia Conf. on Knowledge Discovery and Data Mining (PAKDD 2006)", url="https://doi.org/10.1007/11731139_16", bibkey="DBLP:conf/pakdd/AchtertBK06") @Alias(value="de.lmu.ifi.dbs.elki.algorithm.clustering.DeLiClu") public class DeLiClu<V extends NumberVector> extends AbstractDistanceBasedAlgorithm<V,ClusterOrder> implements OPTICSTypeAlgorithm
A hierarchical algorithm to find density-connected sets in a database, closely related to OPTICS but exploiting the structure of a R-tree for acceleration.
Reference:
Elke Achtert, Christian Böhm, Peer Kröger
DeLiClu: Boosting Robustness, Completeness, Usability, and Efficiency of
Hierarchical Clustering by a Closest Pair Ranking
Proc. 10th Pacific-Asia Conf. on Knowledge Discovery and Data Mining (PAKDD
2006)
Modifier and Type | Class and Description |
---|---|
static class |
DeLiClu.Parameterizer<V extends NumberVector>
Parameterization class.
|
static class |
DeLiClu.SpatialObjectPair
Encapsulates an entry in the cluster order.
|
Modifier and Type | Field and Description |
---|---|
private UpdatableHeap<DeLiClu.SpatialObjectPair> |
heap
The priority queue for the algorithm.
|
protected DeLiCluTreeFactory<? super V> |
indexer
DeLiClu Index factory.
|
private static Logging |
LOG
The logger for this class.
|
private int |
minpts
Density threshold in number of objects.
|
ALGORITHM_ID
DISTANCE_FUNCTION_ID
Constructor and Description |
---|
DeLiClu(DeLiCluTreeFactory<? super V> indexer,
DistanceFunction<? super V> distanceFunction,
int minpts)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private void |
expandDirNodes(SpatialPrimitiveDistanceFunction<V> distFunction,
DeLiCluNode node1,
DeLiCluNode node2)
Expands the specified directory nodes.
|
private void |
expandLeafNodes(SpatialPrimitiveDistanceFunction<V> distFunction,
DeLiCluNode node1,
DeLiCluNode node2,
DataStore<KNNList> knns)
Expands the specified leaf nodes.
|
private void |
expandNodes(DeLiCluTree index,
SpatialPrimitiveDistanceFunction<V> distFunction,
DeLiClu.SpatialObjectPair nodePair,
DataStore<KNNList> knns)
Expands the spatial nodes of the specified pair.
|
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.
|
private void |
reinsertExpanded(SpatialPrimitiveDistanceFunction<V> distFunction,
DeLiCluTree index,
IndexTreePath<DeLiCluEntry> path,
DataStore<KNNList> knns)
Reinserts the objects of the already expanded nodes.
|
private void |
reinsertExpanded(SpatialPrimitiveDistanceFunction<V> distFunction,
DeLiCluTree index,
java.util.List<IndexTreePath<DeLiCluEntry>> path,
int pos,
DeLiCluEntry parentEntry,
DataStore<KNNList> knns) |
ClusterOrder |
run(Database database,
Relation<V> relation) |
getDistanceFunction
run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
private UpdatableHeap<DeLiClu.SpatialObjectPair> heap
private int minpts
protected DeLiCluTreeFactory<? super V extends NumberVector> indexer
public DeLiClu(DeLiCluTreeFactory<? super V> indexer, DistanceFunction<? super V> distanceFunction, int minpts)
distanceFunction
- Distance functionminpts
- MinPtspublic ClusterOrder run(Database database, Relation<V> relation)
private void expandNodes(DeLiCluTree index, SpatialPrimitiveDistanceFunction<V> distFunction, DeLiClu.SpatialObjectPair nodePair, DataStore<KNNList> knns)
index
- the index storing the objectsdistFunction
- the spatial distance function of this algorithmnodePair
- the pair of nodes to be expandedknns
- the knn listprivate void expandDirNodes(SpatialPrimitiveDistanceFunction<V> distFunction, DeLiCluNode node1, DeLiCluNode node2)
distFunction
- the spatial distance function of this algorithmnode1
- the first nodenode2
- the second nodeprivate void expandLeafNodes(SpatialPrimitiveDistanceFunction<V> distFunction, DeLiCluNode node1, DeLiCluNode node2, DataStore<KNNList> knns)
distFunction
- the spatial distance function of this algorithmnode1
- the first nodenode2
- the second nodeknns
- the knn listprivate void reinsertExpanded(SpatialPrimitiveDistanceFunction<V> distFunction, DeLiCluTree index, IndexTreePath<DeLiCluEntry> path, DataStore<KNNList> knns)
distFunction
- the spatial distance function of this algorithmindex
- the index storing the objectspath
- the path of the object inserted lastknns
- the knn listprivate void reinsertExpanded(SpatialPrimitiveDistanceFunction<V> distFunction, DeLiCluTree index, java.util.List<IndexTreePath<DeLiCluEntry>> path, int pos, DeLiCluEntry parentEntry, DataStore<KNNList> knns)
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.