Class Anderberg<O>

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

    @Reference(authors="M. R. Anderberg",
               title="Hierarchical Clustering Methods",
               booktitle="Cluster Analysis for Applications",
               bibkey="books/academic/Anderberg73/Ch6")
    @Priority(200)
    public class Anderberg<O>
    extends AGNES<O>
    This is a modification of the classic AGNES algorithm for hierarchical clustering using a nearest-neighbor heuristic for acceleration.

    Instead of scanning the matrix (with cost O(n²)) to find the minimum, the nearest neighbor of each object is remembered. On the downside, we need to check these values at every merge, and it may now cost O(n²) to perform a merge, so there is no worst-case advantage to this approach. The average case however improves from O(n³) to O(n²), which yields a considerable improvement in running time.

    This optimization is attributed to M. R. Anderberg.

    Reference:

    M. R. Anderberg
    Hierarchical Clustering Methods
    Cluster Analysis for Applications
    ISBN: 0120576503

    Since:
    0.7.0
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Anderberg.Instance
      Main worker instance of Anderberg's algorithm.
      • Nested classes/interfaces inherited from interface elki.Algorithm

        elki.Algorithm.Utils
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static elki.logging.Logging LOG
      Class logger
    • Constructor Summary

      Constructors 
      Constructor Description
      Anderberg​(elki.distance.Distance<? super O> distance, Linkage linkage)
      Constructor.
    • Field Detail

      • LOG

        private static final elki.logging.Logging LOG
        Class logger
    • Constructor Detail

      • Anderberg

        public Anderberg​(elki.distance.Distance<? super O> distance,
                         Linkage linkage)
        Constructor.
        Parameters:
        distance - Distance function to use
        linkage - Linkage method
    • Method Detail

      • run

        public ClusterMergeHistory run​(elki.database.relation.Relation<O> relation)
        Description copied from class: AGNES
        Run the algorithm
        Overrides:
        run in class AGNES<O>
        Parameters:
        relation - Relation
        Returns:
        Clustering hierarchy
      • getInputTypeRestriction

        public elki.data.type.TypeInformation[] getInputTypeRestriction()
        Specified by:
        getInputTypeRestriction in interface elki.Algorithm
        Overrides:
        getInputTypeRestriction in class AGNES<O>