Class ElkanKMeans<V extends NumberVector>

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

    @Reference(authors="C. Elkan",
               title="Using the triangle inequality to accelerate k-means",
               booktitle="Proc. 20th International Conference on Machine Learning, ICML 2003",
               url="http://www.aaai.org/Library/ICML/2003/icml03-022.php",
               bibkey="DBLP:conf/icml/Elkan03")
    public class ElkanKMeans<V extends NumberVector>
    extends SimplifiedElkanKMeans<V>
    Elkan's fast k-means by exploiting the triangle inequality.

    This variant needs O(n*k) additional memory to store bounds.

    See HamerlyKMeans for a close variant that only uses O(n*2) additional memory for bounds.

    Reference:

    C. Elkan
    Using the triangle inequality to accelerate k-means
    Proc. 20th International Conference on Machine Learning, ICML 2003

    Since:
    0.7.0
    Author:
    Erich Schubert