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 class
DeLiClu.Par<V extends NumberVector>
Parameterization class.static class
DeLiClu.SpatialObjectPair
Encapsulates 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>
distance
Distance function used.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.
-
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 void
expandDirNodes(DeLiCluNode node1, DeLiCluNode node2)
Expands the specified directory nodes.private void
expandLeafNodes(DeLiCluNode node1, DeLiCluNode node2, DataStore<KNNList> knns)
Expands the specified leaf nodes.private void
expandNodes(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.int
getMinPts()
Get the minpts value used.private void
reinsertExpanded(DeLiCluTree index, IndexTreePath<DeLiCluEntry> path, DataStore<KNNList> knns)
Reinserts the objects of the already expanded nodes.private void
reinsertExpanded(DeLiCluTree index, java.util.List<IndexTreePath<DeLiCluEntry>> path, int pos, DeLiCluEntry parentEntry, DataStore<KNNList> knns)
ClusterOrder
run(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:Algorithm
Get the input type restriction used for negotiating the data query.- Specified by:
getInputTypeRestriction
in 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:OPTICSTypeAlgorithm
Get the minpts value used. Needed for OPTICS Xi.- Specified by:
getMinPts
in interfaceOPTICSTypeAlgorithm
- Returns:
- minpts value
-
-