@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)
Algorithm
run
in interface Algorithm
run
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()
Algorithm
getInputTypeRestriction
in interface Algorithm
Copyright © 2019 ELKI Development Team. License information.