Class CKMeans

  • All Implemented Interfaces:
    Algorithm, ClusteringAlgorithm<Clustering<KMeansModel>>

    @Title("CK-means")
    @Reference(authors="S. D. Lee, B. Kao, R. Cheng",
               title="Reducing UK-means to K-means",
               booktitle="ICDM Data Mining Workshops, 2007",
               url="https://doi.org/10.1109/ICDMW.2007.40",
               bibkey="DBLP:conf/icdm/LeeKC07")
    public class CKMeans
    extends CenterOfMassMetaClustering<Clustering<KMeansModel>>
    Run k-means on the centers of each uncertain object.

    This is a baseline reference method, that computes the center of mass (centroid) of each object, then runs k-means on this.

    References:

    This algorithm was introduced as CK-Means in:

    S. D. Lee, B. Kao, R. Cheng
    Reducing UK-means to K-means
    ICDM Data Mining Workshops, 2007

    and was shown to be equivalent to UK-Means.

    In summary, the expected distance used by UK-Means can be decomposed using Steiner/König-Huygens into the sum of squares between the centroids, and the sum of squared deviations within the uncertain object itself. This last term, however, is constant.

    Since:
    0.7.0
    Author:
    Erich Schubert
    • Constructor Detail

      • CKMeans

        public CKMeans​(KMeans<?,​KMeansModel> kmeans)
        Constructor that uses an arbitrary k-means algorithm.
        Parameters:
        kmeans - K-Means algorithm to use.
      • CKMeans

        public CKMeans​(NumberVectorDistance<? super NumberVector> distance,
                       int k,
                       int maxiter,
                       KMeansInitialization initializer)
        Constructor that uses Lloyd's k-means algorithm.
        Parameters:
        distance - Distance functions for centers
        k - K parameter
        maxiter - Maximum number of iterations
        initializer - Initializer