Class KMeansPlusPlusClusterer<T extends Clusterable<T>>

  • Type Parameters:
    T - type of the points to cluster

    @Deprecated
    public class KMeansPlusPlusClusterer<T extends Clusterable<T>>
    extends java.lang.Object
    Deprecated.
    As of 3.2 (to be removed in 4.0), use KMeansPlusPlusClusterer instead
    Clustering algorithm based on David Arthur and Sergei Vassilvitski k-means++ algorithm.
    Since:
    2.0
    See Also:
    K-means++ (wikipedia)
    • Constructor Detail

      • KMeansPlusPlusClusterer

        public KMeansPlusPlusClusterer​(java.util.Random random)
        Deprecated.
        Build a clusterer.

        The default strategy for handling empty clusters that may appear during algorithm iterations is to split the cluster with largest distance variance.

        Parameters:
        random - random generator to use for choosing initial centers
      • KMeansPlusPlusClusterer

        public KMeansPlusPlusClusterer​(java.util.Random random,
                                       KMeansPlusPlusClusterer.EmptyClusterStrategy emptyStrategy)
        Deprecated.
        Build a clusterer.
        Parameters:
        random - random generator to use for choosing initial centers
        emptyStrategy - strategy to use for handling empty clusters that may appear during algorithm iterations
        Since:
        2.2
    • Method Detail

      • cluster

        public java.util.List<Cluster<T>> cluster​(java.util.Collection<T> points,
                                                  int k,
                                                  int numTrials,
                                                  int maxIterationsPerTrial)
                                           throws MathIllegalArgumentException,
                                                  ConvergenceException
        Deprecated.
        Runs the K-means++ clustering algorithm.
        Parameters:
        points - the points to cluster
        k - the number of clusters to split the data into
        numTrials - number of trial runs
        maxIterationsPerTrial - the maximum number of iterations to run the algorithm for at each trial run. If negative, no maximum will be used
        Returns:
        a list of clusters containing the points
        Throws:
        MathIllegalArgumentException - if the data points are null or the number of clusters is larger than the number of data points
        ConvergenceException - if an empty cluster is encountered and the emptyStrategy is set to ERROR
      • cluster

        public java.util.List<Cluster<T>> cluster​(java.util.Collection<T> points,
                                                  int k,
                                                  int maxIterations)
                                           throws MathIllegalArgumentException,
                                                  ConvergenceException
        Deprecated.
        Runs the K-means++ clustering algorithm.
        Parameters:
        points - the points to cluster
        k - the number of clusters to split the data into
        maxIterations - the maximum number of iterations to run the algorithm for. If negative, no maximum will be used
        Returns:
        a list of clusters containing the points
        Throws:
        MathIllegalArgumentException - if the data points are null or the number of clusters is larger than the number of data points
        ConvergenceException - if an empty cluster is encountered and the emptyStrategy is set to ERROR