Class SphericalElkanKMeans<V extends NumberVector>

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

    @Reference(authors="Erich Schubert, Andreas Lang, Gloria Feher",title="Accelerating Spherical k-Means",booktitle="Int. Conf. on Similarity Search and Applications, SISAP 2021",url="https://doi.org/10.1007/978-3-030-89657-7_17",bibkey="DBLP:conf/sisap/SchubertLF21") @Reference(authors="Erich Schubert",title="A Triangle Inequality for Cosine Similarity",booktitle="Int. Conf. on Similarity Search and Applications, SISAP 2021",url="https://doi.org/10.1007/978-3-030-89657-7_3",bibkey="DBLP:conf/sisap/Schubert21")
    public class SphericalElkanKMeans<V extends NumberVector>
    extends SphericalSimplifiedElkanKMeans<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:

    Erich Schubert, Andreas Lang, Gloria Feher
    Accelerating Spherical k-Means
    Int. Conf. on Similarity Search and Applications, SISAP 2021

    The underlying triangle inequality used for pruning is introduced in:

    Erich Schubert
    A Triangle Inequality for Cosine Similarity
    Int. Conf. on Similarity Search and Applications, SISAP 2021

    Since:
    0.8.0
    Author:
    Erich Schubert