Package org.hipparchus.clustering
Class MultiKMeansPlusPlusClusterer<T extends Clusterable>
- java.lang.Object
-
- org.hipparchus.clustering.Clusterer<T>
-
- org.hipparchus.clustering.MultiKMeansPlusPlusClusterer<T>
-
- Type Parameters:
T- type of the points to cluster
public class MultiKMeansPlusPlusClusterer<T extends Clusterable> extends Clusterer<T>
A wrapper around a k-means++ clustering algorithm which performs multiple trials and returns the best solution.
-
-
Constructor Summary
Constructors Constructor Description MultiKMeansPlusPlusClusterer(KMeansPlusPlusClusterer<T> clusterer, int numTrials)Build a clusterer.MultiKMeansPlusPlusClusterer(KMeansPlusPlusClusterer<T> clusterer, int numTrials, ClusterEvaluator<T> evaluator)Build a clusterer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<CentroidCluster<T>>cluster(Collection<T> points)Runs the K-means++ clustering algorithm.KMeansPlusPlusClusterer<T>getClusterer()Returns the embedded k-means clusterer used by this instance.ClusterEvaluator<T>getClusterEvaluator()Returns theClusterEvaluatorused to determine the "best" clustering.intgetNumTrials()Returns the number of trials this instance will do.-
Methods inherited from class org.hipparchus.clustering.Clusterer
distance, getDistanceMeasure
-
-
-
-
Constructor Detail
-
MultiKMeansPlusPlusClusterer
public MultiKMeansPlusPlusClusterer(KMeansPlusPlusClusterer<T> clusterer, int numTrials)
Build a clusterer.- Parameters:
clusterer- the k-means clusterer to usenumTrials- number of trial runs
-
MultiKMeansPlusPlusClusterer
public MultiKMeansPlusPlusClusterer(KMeansPlusPlusClusterer<T> clusterer, int numTrials, ClusterEvaluator<T> evaluator)
Build a clusterer.- Parameters:
clusterer- the k-means clusterer to usenumTrials- number of trial runsevaluator- the cluster evaluator to use
-
-
Method Detail
-
getClusterer
public KMeansPlusPlusClusterer<T> getClusterer()
Returns the embedded k-means clusterer used by this instance.- Returns:
- the embedded clusterer
-
getNumTrials
public int getNumTrials()
Returns the number of trials this instance will do.- Returns:
- the number of trials
-
getClusterEvaluator
public ClusterEvaluator<T> getClusterEvaluator()
Returns theClusterEvaluatorused to determine the "best" clustering.- Returns:
- the used
ClusterEvaluator
-
cluster
public List<CentroidCluster<T>> cluster(Collection<T> points) throws MathIllegalArgumentException, MathIllegalStateException
Runs the K-means++ clustering algorithm.- Specified by:
clusterin classClusterer<T extends Clusterable>- Parameters:
points- the points to cluster- 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 pointsMathIllegalStateException- if an empty cluster is encountered and the underlyingKMeansPlusPlusClustererhas itsKMeansPlusPlusClusterer.EmptyClusterStrategyis set toERROR.
-
-