Class AbstractHDBSCAN<O>

  • Type Parameters:
    O - Input object type
    All Implemented Interfaces:
    elki.Algorithm
    Direct Known Subclasses:
    HDBSCANLinearMemory, SLINKHDBSCANLinearMemory

    @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 abstract class AbstractHDBSCAN<O>
    extends java.lang.Object
    implements elki.Algorithm
    Abstract base class for HDBSCAN variations.

    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)

    Since:
    0.7.0
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  AbstractHDBSCAN.HDBSCANAdapter
      Class for processing the HDBSCAN G_mpts graph.
      static class  AbstractHDBSCAN.HeapMSTCollector
      Class for collecting the minimum spanning tree edges into a heap.
      • Nested classes/interfaces inherited from interface elki.Algorithm

        elki.Algorithm.Utils
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected elki.distance.Distance<? super O> distance
      Distance function used.
      protected int minPts
      MinPts parameter.
    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractHDBSCAN​(elki.distance.Distance<? super O> distance, int minPts)
      Constructor.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected elki.database.datastore.WritableDoubleDataStore computeCoreDists​(elki.database.ids.DBIDs ids, elki.database.query.knn.KNNSearcher<elki.database.ids.DBIDRef> knnQ, int minPts)
      Compute the core distances for all objects.
      protected ClusterMergeHistoryBuilder convertToMergeList​(elki.database.ids.ArrayDBIDs ids, elki.utilities.datastructures.heap.DoubleLongHeap heap, ClusterMergeHistoryBuilder builder)
      Convert spanning tree to a pointer representation.
      elki.data.type.TypeInformation[] getInputTypeRestriction()  
      protected abstract elki.logging.Logging getLogger()
      Get the (STATIC) logger for this class.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface elki.Algorithm

        autorun
    • Field Detail

      • minPts

        protected final int minPts
        MinPts parameter.
      • distance

        protected elki.distance.Distance<? super O> distance
        Distance function used.
    • Constructor Detail

      • AbstractHDBSCAN

        public AbstractHDBSCAN​(elki.distance.Distance<? super O> distance,
                               int minPts)
        Constructor.
        Parameters:
        distance - Distance function
        minPts - Minimum number of points for coredists
    • Method Detail

      • computeCoreDists

        protected elki.database.datastore.WritableDoubleDataStore computeCoreDists​(elki.database.ids.DBIDs ids,
                                                                                   elki.database.query.knn.KNNSearcher<elki.database.ids.DBIDRef> knnQ,
                                                                                   int minPts)
        Compute the core distances for all objects.
        Parameters:
        ids - Objects
        knnQ - kNN query
        minPts - Minimum neighborhood size
        Returns:
        Data store with core distances
      • convertToMergeList

        protected ClusterMergeHistoryBuilder convertToMergeList​(elki.database.ids.ArrayDBIDs ids,
                                                                elki.utilities.datastructures.heap.DoubleLongHeap heap,
                                                                ClusterMergeHistoryBuilder builder)
        Convert spanning tree to a pointer representation.

        Note: the heap must use the correct encoding of indexes.

        Parameters:
        ids - IDs indexed
        heap - Heap
        builder - Hierarchy builder
        Returns:
        builder, for method chaining
      • getInputTypeRestriction

        public elki.data.type.TypeInformation[] getInputTypeRestriction()
        Specified by:
        getInputTypeRestriction in interface elki.Algorithm
      • getLogger

        protected abstract elki.logging.Logging getLogger()
        Get the (STATIC) logger for this class.
        Returns:
        the static logger