Class Anderberg<O>

  • Type Parameters:
    O - Object type
    All Implemented Interfaces:
    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
    • Field Detail

      • LOG

        private static final Logging LOG
        Class logger
    • Constructor Detail

      • Anderberg

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