Class LloydKMeans<V extends elki.data.NumberVector>

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

    @Title("k-Means (Lloyd/Forgy Algorithm)")
    @Reference(authors="S. Lloyd",title="Least squares quantization in PCM",booktitle="IEEE Transactions on Information Theory 28 (2): 129\u2013137.",url="https://doi.org/10.1109/TIT.1982.1056489",bibkey="DBLP:journals/tit/Lloyd82") @Reference(authors="E. W. Forgy",title="Cluster analysis of multivariate data: efficiency versus interpretability of classifications",booktitle="Biometrics 21(3)",bibkey="journals/biometrics/Forgy65")
    @Alias({"lloyd","forgy"})
    public class LloydKMeans<V extends elki.data.NumberVector>
    extends AbstractKMeans<V,​KMeansModel>
    The standard k-means algorithm, using bulk iterations and commonly attributed to Lloyd and Forgy (independently).

    Reference:

    S. Lloyd
    Least squares quantization in PCM
    IEEE Transactions on Information Theory 28 (2)
    previously published as Bell Telephone Laboratories Paper

    E. W. Forgy
    Cluster analysis of multivariate data: efficiency versus interpretability of classifications
    Abstract published in Biometrics 21(3)

    Since:
    0.5.0
    Author:
    Arthur Zimek
    • Field Detail

      • LOG

        private static final elki.logging.Logging LOG
        The logger for this class.
    • Constructor Detail

      • LloydKMeans

        public LloydKMeans​(elki.distance.NumberVectorDistance<? super V> distance,
                           int k,
                           int maxiter,
                           KMeansInitialization initializer)
        Constructor.
        Parameters:
        distance - distance function
        k - k parameter
        maxiter - Maxiter parameter
        initializer - Initialization method
    • Method Detail

      • run

        public Clustering<KMeansModel> run​(elki.database.relation.Relation<V> relation)
        Description copied from interface: KMeans
        Run the clustering algorithm.
        Parameters:
        relation - Relation to process.
        Returns:
        Clustering result
      • getLogger

        protected elki.logging.Logging getLogger()
        Description copied from class: AbstractKMeans
        Get the (STATIC) logger for this class.
        Specified by:
        getLogger in class AbstractKMeans<V extends elki.data.NumberVector,​KMeansModel>
        Returns:
        the static logger