@Reference(authors="R. J. G. B. Campello, D. Moulavi, J. Sander", title="Density-Based Clustering Based on Hierarchical Density Estimates", booktitle="Pacific-Asia Conf. Advances in Knowledge Discovery and Data Mining (PAKDD)", url="https://doi.org/10.1007/978-3-642-37456-2_14", bibkey="DBLP:conf/pakdd/CampelloMS13") public class HDBSCANHierarchyExtraction extends java.lang.Object implements ClusteringAlgorithm<Clustering<DendrogramModel>>
In contrast to the authors top-down approach, we use a bottom-up approach based on the more efficient pointer representation introduced in SLINK.
In particular, it can also be used to extract a hierarchy from a hierarchical agglomerative clustering.
Reference:
 R. J. G. B. Campello, D. Moulavi, J. Sander
 Density-Based Clustering Based on Hierarchical Density Estimates
 Pacific-Asia Conf. Advances in Knowledge Discovery and Data Mining (PAKDD)
 
Note: some of the code is rather complex because we delay the creation of one-element clusters to reduce garbage collection overhead.
| Modifier and Type | Class and Description | 
|---|---|
protected class  | 
HDBSCANHierarchyExtraction.Instance
Instance for a single data set. 
 | 
static class  | 
HDBSCANHierarchyExtraction.Parameterizer
Parameterization class. 
 | 
private static class  | 
HDBSCANHierarchyExtraction.TempCluster
Temporary cluster. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
private HierarchicalClusteringAlgorithm | 
algorithm
Clustering algorithm to run to obtain the hierarchy. 
 | 
private boolean | 
hierarchical
Return a hierarchical result. 
 | 
private static Logging | 
LOG
Class logger. 
 | 
private int | 
minClSize
Minimum cluster size. 
 | 
| Constructor and Description | 
|---|
HDBSCANHierarchyExtraction(HierarchicalClusteringAlgorithm algorithm,
                          int minClSize,
                          boolean hierarchical)
Constructor. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
TypeInformation[] | 
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query. 
 | 
Clustering<DendrogramModel> | 
run(Database database)
Runs the algorithm. 
 | 
Clustering<DendrogramModel> | 
run(PointerHierarchyRepresentationResult pointerresult)
Process an existing result. 
 | 
private static final Logging LOG
private int minClSize
private HierarchicalClusteringAlgorithm algorithm
private boolean hierarchical
public HDBSCANHierarchyExtraction(HierarchicalClusteringAlgorithm algorithm, int minClSize, boolean hierarchical)
algorithm - Algorithm to runminClSize - Minimum cluster sizehierarchical - Produce a hierarchical resultpublic Clustering<DendrogramModel> run(Database database)
Algorithmrun in interface Algorithmrun in interface ClusteringAlgorithm<Clustering<DendrogramModel>>database - the database to run the algorithm onpublic Clustering<DendrogramModel> run(PointerHierarchyRepresentationResult pointerresult)
pointerresult - Existing result in pointer representation.public TypeInformation[] getInputTypeRestriction()
AlgorithmgetInputTypeRestriction in interface AlgorithmCopyright © 2019 ELKI Development Team. License information.