Package elki.clustering.optics
Class DeLiClu<V extends NumberVector>
- java.lang.Object
-
- elki.clustering.optics.DeLiClu<V>
-
- Type Parameters:
V- the type of NumberVector handled by this Algorithm
- All Implemented Interfaces:
Algorithm,OPTICSTypeAlgorithm
@Title("DeliClu: Density-Based Hierarchical Clustering") @Description("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") public class DeLiClu<V extends NumberVector> extends java.lang.Object implements OPTICSTypeAlgorithm
DeliClu: Density-Based Hierarchical ClusteringA 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)- Since:
- 0.1
- Author:
- Elke Achtert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDeLiClu.Par<V extends NumberVector>Parameterization class.static classDeLiClu.SpatialObjectPairEncapsulates an entry in the cluster order.-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Field Summary
Fields Modifier and Type Field Description protected SpatialPrimitiveDistance<? super V>distanceDistance function used.private UpdatableHeap<DeLiClu.SpatialObjectPair>heapThe priority queue for the algorithm.protected DeLiCluTreeFactory<? super V>indexerDeLiClu Index factory.private static LoggingLOGThe logger for this class.private intminptsDensity threshold in number of objects.
-
Constructor Summary
Constructors Constructor Description DeLiClu(DeLiCluTreeFactory<? super V> indexer, SpatialPrimitiveDistance<? super V> distance, int minpts)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidexpandDirNodes(DeLiCluNode node1, DeLiCluNode node2)Expands the specified directory nodes.private voidexpandLeafNodes(DeLiCluNode node1, DeLiCluNode node2, DataStore<KNNList> knns)Expands the specified leaf nodes.private voidexpandNodes(DeLiCluTree index, 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.intgetMinPts()Get the minpts value used.private voidreinsertExpanded(DeLiCluTree index, IndexTreePath<DeLiCluEntry> path, DataStore<KNNList> knns)Reinserts the objects of the already expanded nodes.private voidreinsertExpanded(DeLiCluTree index, java.util.List<IndexTreePath<DeLiCluEntry>> path, int pos, DeLiCluEntry parentEntry, DataStore<KNNList> knns)ClusterOrderrun(Relation<V> relation)Run the DeLiClu clustering algorithm.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.clustering.optics.OPTICSTypeAlgorithm
autorun
-
-
-
-
Field Detail
-
LOG
private static final Logging LOG
The logger for this class.
-
distance
protected SpatialPrimitiveDistance<? super V extends NumberVector> distance
Distance function used.
-
indexer
protected DeLiCluTreeFactory<? super V extends NumberVector> indexer
DeLiClu Index factory.
-
heap
private UpdatableHeap<DeLiClu.SpatialObjectPair> heap
The priority queue for the algorithm.
-
minpts
private int minpts
Density threshold in number of objects.
-
-
Constructor Detail
-
DeLiClu
public DeLiClu(DeLiCluTreeFactory<? super V> indexer, SpatialPrimitiveDistance<? super V> distance, int minpts)
Constructor.- Parameters:
distance- Distance functionminpts- MinPts
-
-
Method Detail
-
getInputTypeRestriction
public TypeInformation[] getInputTypeRestriction()
Description copied from interface:AlgorithmGet the input type restriction used for negotiating the data query.- Specified by:
getInputTypeRestrictionin interfaceAlgorithm- Returns:
- Type restriction
-
run
public ClusterOrder run(Relation<V> relation)
Run the DeLiClu clustering algorithm.- Parameters:
relation- Relation to cluster- Returns:
- OPTICS cluster order
-
expandNodes
private void expandNodes(DeLiCluTree index, DeLiClu.SpatialObjectPair nodePair, DataStore<KNNList> knns)
Expands the spatial nodes of the specified pair.- Parameters:
index- the index storing the objectsnodePair- the pair of nodes to be expandedknns- the knn list
-
expandDirNodes
private void expandDirNodes(DeLiCluNode node1, DeLiCluNode node2)
Expands the specified directory nodes.- Parameters:
node1- the first nodenode2- the second node
-
expandLeafNodes
private void expandLeafNodes(DeLiCluNode node1, DeLiCluNode node2, DataStore<KNNList> knns)
Expands the specified leaf nodes.- Parameters:
node1- the first nodenode2- the second nodeknns- the knn list
-
reinsertExpanded
private void reinsertExpanded(DeLiCluTree index, IndexTreePath<DeLiCluEntry> path, DataStore<KNNList> knns)
Reinserts the objects of the already expanded nodes.- Parameters:
index- the index storing the objectspath- the path of the object inserted lastknns- the knn list
-
reinsertExpanded
private void reinsertExpanded(DeLiCluTree index, java.util.List<IndexTreePath<DeLiCluEntry>> path, int pos, DeLiCluEntry parentEntry, DataStore<KNNList> knns)
-
getMinPts
public int getMinPts()
Description copied from interface:OPTICSTypeAlgorithmGet the minpts value used. Needed for OPTICS Xi.- Specified by:
getMinPtsin interfaceOPTICSTypeAlgorithm- Returns:
- minpts value
-
-