Class YinYangKMeans<V extends NumberVector>

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

    @Reference(authors="Y. Ding, Y. Zhao, X. Shen, M, Musuvathi, T. Mytkowicz",
               title="Yinyang K-Means: A Drop-In Replacement of the Classic K-Means with Consistent Speedup",
               booktitle="Proc. International Conference on Machine Learning (ICML 2015)",
               url="http://proceedings.mlr.press/v37/ding15.html",
               bibkey="DBLP:conf/icml/DingZSMM15")
    public class YinYangKMeans<V extends NumberVector>
    extends AbstractKMeans<V,​KMeansModel>
    Yin-Yang k-Means Clustering. This approach has one bound for each group of cluster centers, and sits in-between of Hamerly (one bound only) and Elkan (one bound for each center).

    Reference:

    Y. Ding, Y. Zhao, X. Shen, M, Musuvathi, T. Mytkowicz
    Yinyang K-Means: A Drop-In Replacement of the Classic K-Means with Consistent Speedup
    Proc. International Conference on Machine Learning (ICML 2015)

    Since:
    0.8.0
    Author:
    Minh Nhat Nguyen, Erich Schubert
    • Field Detail

      • LOG

        private static final Logging LOG
        Class logger
      • GROUP_KMEANS_MAXITER

        private static final int GROUP_KMEANS_MAXITER
        Use only up to 5 iterations of kmeans for grouping initial centers.
        See Also:
        Constant Field Values
      • t

        private int t
        Number of cluster center groups t
    • Constructor Detail

      • YinYangKMeans

        public YinYangKMeans​(int k,
                             int maxiter,
                             KMeansInitialization initializer,
                             int t)
        Constructor.
        Parameters:
        k - Number of clusters
        maxiter - Maximum number of iterations
        initializer - Initialization method
        t - Number of cluster center groups for pruning