Class SphericalKMeansPlusPlus.Instance
- java.lang.Object
-
- elki.clustering.kmeans.initialization.SphericalKMeansPlusPlus.Instance
-
- Enclosing class:
- SphericalKMeansPlusPlus<O>
protected static class SphericalKMeansPlusPlus.Instance extends java.lang.Object
Abstract instance implementing the weight handling.- Author:
- Erich Schubert
-
-
Field Summary
Fields Modifier and Type Field Description protected double
alpha
Parameter to balance distance vs. uniform sampling.protected long
diststat
Count the number of distance computations.protected java.util.Random
random
Random generatorprotected Relation<? extends NumberVector>
relation
Data relation.protected WritableDoubleDataStore
weights
Weights
-
Constructor Summary
Constructors Constructor Description Instance(Relation<? extends NumberVector> relation, double alpha, RandomFactory rnd)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
chooseRemaining(int k, java.util.List<NumberVector> means, double weightsum)
Choose remaining means, weighted by distance.protected double
initialWeights(NumberVector first)
Initialize the weight list.protected double
nextDouble(double weightsum)
double[][]
run(int k)
Run k-means++ initialization for number vectors.protected double
similarity(NumberVector a, DBIDRef b)
Compute the distance of two objects.protected double
updateWeights(NumberVector latest)
Update the weight list.
-
-
-
Field Detail
-
alpha
protected double alpha
Parameter to balance distance vs. uniform sampling.
-
relation
protected Relation<? extends NumberVector> relation
Data relation.
-
weights
protected WritableDoubleDataStore weights
Weights
-
diststat
protected long diststat
Count the number of distance computations.
-
random
protected java.util.Random random
Random generator
-
-
Constructor Detail
-
Instance
public Instance(Relation<? extends NumberVector> relation, double alpha, RandomFactory rnd)
Constructor.- Parameters:
relation
- Data relationalpha
- Alpha parameterrnd
- Random generator
-
-
Method Detail
-
run
public double[][] run(int k)
Run k-means++ initialization for number vectors.- Parameters:
k
- K- Returns:
- Vectors
-
similarity
protected double similarity(NumberVector a, DBIDRef b)
Compute the distance of two objects.- Parameters:
a
- First objectb
- Second object- Returns:
- Distance
-
chooseRemaining
protected void chooseRemaining(int k, java.util.List<NumberVector> means, double weightsum)
Choose remaining means, weighted by distance.- Parameters:
k
- Number of means to choosemeans
- Means storageweightsum
- Sum of weights
-
initialWeights
protected double initialWeights(NumberVector first)
Initialize the weight list.- Parameters:
first
- Added ID- Returns:
- Weight sum
-
updateWeights
protected double updateWeights(NumberVector latest)
Update the weight list.- Parameters:
latest
- Added ID- Returns:
- Weight sum
-
nextDouble
protected double nextDouble(double weightsum)
-
-