Package elki.clustering.kmeans.parallel
Class KMeansProcessor<V extends elki.data.NumberVector>
- java.lang.Object
-
- elki.clustering.kmeans.parallel.KMeansProcessor<V>
-
- All Implemented Interfaces:
elki.parallel.processor.Processor
public class KMeansProcessor<V extends elki.data.NumberVector> extends java.lang.Object implements elki.parallel.processor.ProcessorParallel k-means implementation.- Since:
- 0.7.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classKMeansProcessor.Instance<V extends elki.data.NumberVector>Instance to process part of the data set, for a single iteration.
-
Field Summary
Fields Modifier and Type Field Description (package private) elki.database.datastore.WritableIntegerDataStoreassignmentAssignment storage.(package private) double[][]centroidsUpdated cluster centroids(package private) booleanchangedWhether the assignment changed during the last iteration.(package private) elki.distance.NumberVectorDistance<? super V>distanceDistance function.(package private) double[][]meansMean vectors.(package private) elki.database.relation.Relation<V>relationData relation.(package private) int[]sizes(Partial) cluster sizes(package private) double[]varsumVariance sum.
-
Constructor Summary
Constructors Constructor Description KMeansProcessor(elki.database.relation.Relation<V> relation, elki.distance.NumberVectorDistance<? super V> distance, elki.database.datastore.WritableIntegerDataStore assignment, double[] varsum)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanchanged()Get the "has changed" value.voidcleanup(elki.parallel.processor.Processor.Instance inst)double[][]getMeans()Get the new means.KMeansProcessor.Instance<V>instantiate(elki.parallel.Executor exectutor)voidnextIteration(double[][] means)Initialize for a new iteration.
-
-
-
Field Detail
-
relation
elki.database.relation.Relation<V extends elki.data.NumberVector> relation
Data relation.
-
distance
elki.distance.NumberVectorDistance<? super V extends elki.data.NumberVector> distance
Distance function.
-
assignment
elki.database.datastore.WritableIntegerDataStore assignment
Assignment storage.
-
means
double[][] means
Mean vectors.
-
centroids
double[][] centroids
Updated cluster centroids
-
sizes
int[] sizes
(Partial) cluster sizes
-
varsum
double[] varsum
Variance sum.
-
changed
boolean changed
Whether the assignment changed during the last iteration.
-
-
Constructor Detail
-
KMeansProcessor
public KMeansProcessor(elki.database.relation.Relation<V> relation, elki.distance.NumberVectorDistance<? super V> distance, elki.database.datastore.WritableIntegerDataStore assignment, double[] varsum)
Constructor.- Parameters:
relation- Data relationdistance- Distance functionassignment- Cluster assignmentvarsum- Variance sums
-
-
Method Detail
-
changed
public boolean changed()
Get the "has changed" value.- Returns:
- Changed flag.
-
nextIteration
public void nextIteration(double[][] means)
Initialize for a new iteration.- Parameters:
means- New means.
-
instantiate
public KMeansProcessor.Instance<V> instantiate(elki.parallel.Executor exectutor)
- Specified by:
instantiatein interfaceelki.parallel.processor.Processor
-
cleanup
public void cleanup(elki.parallel.processor.Processor.Instance inst)
- Specified by:
cleanupin interfaceelki.parallel.processor.Processor
-
getMeans
public double[][] getMeans()
Get the new means.- Returns:
- New means
-
-