Package elki.clustering.kmeans
Class HamerlyKMeans.Instance
- java.lang.Object
-
- elki.clustering.kmeans.AbstractKMeans.Instance
-
- elki.clustering.kmeans.HamerlyKMeans.Instance
-
- Direct Known Subclasses:
AnnulusKMeans.Instance,ExponionKMeans.Instance
- Enclosing class:
- HamerlyKMeans<V extends NumberVector>
protected static class HamerlyKMeans.Instance extends AbstractKMeans.Instance
Inner instance, storing state for a single data set.- Author:
- Erich Schubert
-
-
Field Summary
Fields Modifier and Type Field Description (package private) WritableDoubleDataStorelowerLower bounds(package private) double[][]newmeansScratch space for new means.(package private) double[]sepSeparation of means / distance moved.(package private) double[][]sumsSum aggregate for the new mean.(package private) WritableDoubleDataStoreupperUpper bounds-
Fields inherited from class elki.clustering.kmeans.AbstractKMeans.Instance
assignment, clusters, diststat, isSquared, k, key, means, relation, varsum
-
-
Constructor Summary
Constructors Constructor Description Instance(Relation<? extends NumberVector> relation, NumberVectorDistance<?> df, double[][] means)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intassignToNearestCluster()Assign each object to the nearest cluster.protected LogginggetLogger()Get the class logger.protected intinitialAssignToNearestCluster()Perform initial cluster assignment.protected intiterate(int iteration)Main loop function.protected voidrecomputeSeperation(double[] sep)Recompute the separation of cluster means.protected voidupdateBounds(double[] move)Update the bounds for k-means.-
Methods inherited from class elki.clustering.kmeans.AbstractKMeans.Instance
buildResult, buildResult, computeSquaredSeparation, copyMeans, distance, distance, distance, initialSeperation, meansFromSums, movedDistance, recomputeSeperation, recomputeVariance, run, sqrtdistance, sqrtdistance, sqrtdistance
-
-
-
-
Field Detail
-
sums
double[][] sums
Sum aggregate for the new mean.
-
newmeans
double[][] newmeans
Scratch space for new means.
-
upper
WritableDoubleDataStore upper
Upper bounds
-
lower
WritableDoubleDataStore lower
Lower bounds
-
sep
double[] sep
Separation of means / distance moved.
-
-
Constructor Detail
-
Instance
public Instance(Relation<? extends NumberVector> relation, NumberVectorDistance<?> df, double[][] means)
Constructor.- Parameters:
relation- Relationdf- Distance functionmeans- Initial means
-
-
Method Detail
-
iterate
protected int iterate(int iteration)
Description copied from class:AbstractKMeans.InstanceMain loop function.- Specified by:
iteratein classAbstractKMeans.Instance- Parameters:
iteration- Iteration number (beginning at 1)- Returns:
- Number of reassigned points
-
initialAssignToNearestCluster
protected int initialAssignToNearestCluster()
Perform initial cluster assignment.- Returns:
- Number of changes (i.e., relation size)
-
assignToNearestCluster
protected int assignToNearestCluster()
Description copied from class:AbstractKMeans.InstanceAssign each object to the nearest cluster.- Overrides:
assignToNearestClusterin classAbstractKMeans.Instance- Returns:
- number of objects reassigned
-
recomputeSeperation
protected void recomputeSeperation(double[] sep)
Recompute the separation of cluster means.Used by Hamerly.
- Parameters:
sep- Output array of separation (half-sqrt scaled)
-
updateBounds
protected void updateBounds(double[] move)
Update the bounds for k-means.- Parameters:
move- Movement of centers
-
getLogger
protected Logging getLogger()
Description copied from class:AbstractKMeans.InstanceGet the class logger.- Specified by:
getLoggerin classAbstractKMeans.Instance- Returns:
- Logger
-
-