Class HACAM<O>

  • Type Parameters:
    O - Object type
    All Implemented Interfaces:
    elki.Algorithm, HierarchicalClusteringAlgorithm

    @Reference(authors="Erich Schubert",
               title="HACAM: Hierarchical Agglomerative Clustering Around Medoids - and its Limitations",
               booktitle="Proc. Conf. \"Lernen, Wissen, Daten, Analysen\", LWDA",
               url="http://ceur-ws.org/Vol-2993/paper-19.pdf",
               bibkey="DBLP:conf/lwa/Schubert21")
    public class HACAM<O>
    extends java.lang.Object
    implements HierarchicalClusteringAlgorithm
    Hierarchical Agglomerative Clustering Around Medoids (HACAM) is a hierarchical clustering method that merges the clusters with the smallest distance to the medoid of the union. This is different from the earlier MedoidLinkage, which used the distance of the two previous medoids.

    The implementation incorporates the approach of Anderson for acceleration.

    Reference:

    Erich Schubert
    HACAM: Hierarchical Agglomerative Clustering Around Medoids - and its Limitations
    Proceedings of the Conference "Lernen, Wissen, Daten, Analysen", LWDA

    Since:
    0.8.0
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  HACAM.Instance
      Main worker instance of AGNES.
      static class  HACAM.Variant
      Variants of the HACAM method.
      • 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 to use
      private static elki.logging.Logging LOG
      Class logger
      protected HACAM.Variant variant
      Linkage variant to use
    • Constructor Summary

      Constructors 
      Constructor Description
      HACAM​(elki.distance.Distance<? super O> distance, HACAM.Variant variant)
      Constructor.
    • Field Detail

      • LOG

        private static final elki.logging.Logging LOG
        Class logger
      • distance

        protected elki.distance.Distance<? super O> distance
        Distance to use
      • variant

        protected HACAM.Variant variant
        Linkage variant to use
    • Constructor Detail

      • HACAM

        public HACAM​(elki.distance.Distance<? super O> distance,
                     HACAM.Variant variant)
        Constructor.
        Parameters:
        distance - Distance function to use
        variant - Variant to use
    • Method Detail

      • run

        public ClusterPrototypeMergeHistory run​(elki.database.relation.Relation<O> relation)
        Run the algorithm
        Parameters:
        relation - Relation
        Returns:
        Clustering hierarchy
      • getInputTypeRestriction

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