Top Description Fields Constructors Methods
org.apache.commons.math3.ml.clustering

public Class MultiKMeansPlusPlusClusterer<T extends Clusterable>

extends Clusterer<T extends Clusterable>
Class Inheritance
Type Parameters
<T>
type of the points to cluster
Imports
java.util.Collection, .List, org.apache.commons.math3.exception.ConvergenceException, .MathIllegalArgumentException, org.apache.commons.math3.ml.clustering.evaluation.ClusterEvaluator, .SumOfClusterVariances

A wrapper around a k-means++ clustering algorithm which performs multiple trials and returns the best solution.
Since
3.2

Field Summary

Modifier and TypeField and Description
private final KMeansPlusPlusClusterer<T>
clusterer

The underlying k-means clusterer.

private final ClusterEvaluator<T>
evaluator

The cluster evaluator to use.

private final int
numTrials

The number of trial runs.

Constructor Summary

AccessConstructor and Description
public
MultiKMeansPlusPlusClusterer(final KMeansPlusPlusClusterer<T>
the k-means clusterer to use
clusterer
,
final int
number of trial runs
numTrials
)

Build a clusterer.

public
MultiKMeansPlusPlusClusterer(final KMeansPlusPlusClusterer<T>
the k-means clusterer to use
clusterer
,
final int
number of trial runs
numTrials
,
final ClusterEvaluator<T>
the cluster evaluator to use
evaluator
)

Build a clusterer.

Method Summary

Modifier and TypeMethod and Description
public List<CentroidCluster<T>>

Returns:

a list of clusters containing the points
cluster
(final Collection<T>
the points to cluster
points
)

Implements abstract org.apache.commons.math3.ml.clustering.Clusterer.cluster.

Runs the K-means++ clustering algorithm.

public KMeansPlusPlusClusterer<T>

Returns:

the embedded clusterer
getClusterer
()

Returns the embedded k-means clusterer used by this instance.

public ClusterEvaluator<T>

Returns:

the used ClusterEvaluator
getClusterEvaluator
()

Returns the ClusterEvaluator used to determine the "best" clustering.

public int

Returns:

the number of trials
getNumTrials
()

Returns the number of trials this instance will do.

Inherited from org.apache.commons.math3.ml.clustering.Clusterer:
distancegetDistanceMeasure

Field Detail

clustererback to summary
private final KMeansPlusPlusClusterer<T> clusterer

The underlying k-means clusterer.

evaluatorback to summary
private final ClusterEvaluator<T> evaluator

The cluster evaluator to use.

numTrialsback to summary
private final int numTrials

The number of trial runs.

Constructor Detail

MultiKMeansPlusPlusClustererback to summary
public MultiKMeansPlusPlusClusterer(final KMeansPlusPlusClusterer<T> clusterer, final int numTrials)

Build a clusterer.

Parameters
clusterer:KMeansPlusPlusClusterer<T>

the k-means clusterer to use

numTrials:int

number of trial runs

MultiKMeansPlusPlusClustererback to summary
public MultiKMeansPlusPlusClusterer(final KMeansPlusPlusClusterer<T> clusterer, final int numTrials, final ClusterEvaluator<T> evaluator)

Build a clusterer.

Parameters
clusterer:KMeansPlusPlusClusterer<T>

the k-means clusterer to use

numTrials:int

number of trial runs

evaluator:ClusterEvaluator<T>

the cluster evaluator to use

Since
3.3

Method Detail

clusterback to summary
public List<CentroidCluster<T>> cluster(final Collection<T> points) throws MathIllegalArgumentException, ConvergenceException

Implements abstract org.apache.commons.math3.ml.clustering.Clusterer.cluster.

Runs the K-means++ clustering algorithm.

Parameters
points:Collection<T>

the points to cluster

Returns:List<CentroidCluster<T>>

a list of clusters containing the points

Annotations
@Override
Exceptions
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 underlying KMeansPlusPlusClusterer has its KMeansPlusPlusClusterer.EmptyClusterStrategy is set to ERROR.
getClustererback to summary
public KMeansPlusPlusClusterer<T> getClusterer()

Returns the embedded k-means clusterer used by this instance.

Returns:KMeansPlusPlusClusterer<T>

the embedded clusterer

getClusterEvaluatorback to summary
public ClusterEvaluator<T> getClusterEvaluator()

Returns the ClusterEvaluator used to determine the "best" clustering.

Returns:ClusterEvaluator<T>

the used ClusterEvaluator

Since
3.3
getNumTrialsback to summary
public int getNumTrials()

Returns the number of trials this instance will do.

Returns:int

the number of trials