Class SimplifiedElkanKMeans<V extends NumberVector>

  • Type Parameters:
    V - vector datatype
    All Implemented Interfaces:
    Algorithm, ClusteringAlgorithm<Clustering<KMeansModel>>, KMeans<V,​KMeansModel>
    Direct Known Subclasses:
    ElkanKMeans

    @Reference(authors="J. Newling",
               title="Fast k-means with accurate bounds",
               booktitle="Proc. 33nd Int. Conf. on Machine Learning, ICML 2016",
               url="http://jmlr.org/proceedings/papers/v48/newling16.html",
               bibkey="DBLP:conf/icml/NewlingF16")
    public class SimplifiedElkanKMeans<V extends NumberVector>
    extends AbstractKMeans<V,​KMeansModel>
    Simplified version of Elkan's k-means by exploiting the triangle inequality.

    Compared to ElkanKMeans, this uses less pruning, but also does not need to maintain a matrix of pairwise centroid separation.

    Reference:

    J. Newling
    Fast k-means with accurate bounds
    Proc. 33nd Int. Conf. on Machine Learning, ICML 2016

    Since:
    0.7.0
    Author:
    Erich Schubert
    • Field Detail

      • LOG

        private static final Logging LOG
        The logger for this class.
      • varstat

        protected boolean varstat
        Flag whether to compute the final variance statistic.
    • Constructor Detail

      • SimplifiedElkanKMeans

        public SimplifiedElkanKMeans​(NumberVectorDistance<? super V> distance,
                                     int k,
                                     int maxiter,
                                     KMeansInitialization initializer,
                                     boolean varstat)
        Constructor.
        Parameters:
        distance - distance function
        k - k parameter
        maxiter - Maxiter parameter
        initializer - Initialization method
        varstat - Compute the variance statistic