O - Vector type@Reference(authors="D. Arthur, S. Vassilvitskii", title="k-means++: the advantages of careful seeding", booktitle="Proc. 18th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2007)", url="http://dl.acm.org/citation.cfm?id=1283383.1283494", bibkey="DBLP:conf/soda/ArthurV07") @Alias(value="de.lmu.ifi.dbs.elki.algorithm.clustering.kmeans.KMeansPlusPlusInitialMeans") public class KMeansPlusPlusInitialMeans<O> extends AbstractKMeansInitialization implements KMedoidsInitialization<O>
Reference:
 D. Arthur, S. Vassilvitskii
 k-means++: the advantages of careful seeding
 Proc. 18th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2007)
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
KMeansPlusPlusInitialMeans.Parameterizer<V>
Parameterization class. 
 | 
rnd| Constructor and Description | 
|---|
KMeansPlusPlusInitialMeans(RandomFactory rnd)
Constructor. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
double[][] | 
chooseInitialMeans(Database database,
                  Relation<? extends NumberVector> relation,
                  int k,
                  NumberVectorDistanceFunction<?> distanceFunction)
Choose initial means 
 | 
DBIDs | 
chooseInitialMedoids(int k,
                    DBIDs ids,
                    DistanceQuery<? super O> distQ)
Choose initial means 
 | 
(package private) static void | 
chooseRemaining(DBIDs ids,
               DistanceQuery<?> distQ,
               int k,
               ArrayModifiableDBIDs means,
               WritableDoubleDataStore weights,
               double weightsum,
               java.util.Random random)
Choose remaining means, weighted by distance. 
 | 
(package private) static void | 
chooseRemaining(Relation<? extends NumberVector> relation,
               DBIDs ids,
               DistanceQuery<NumberVector> distQ,
               int k,
               java.util.List<NumberVector> means,
               WritableDoubleDataStore weights,
               double weightsum,
               java.util.Random random)
Choose remaining means, weighted by distance. 
 | 
(package private) static double | 
initialWeights(WritableDoubleDataStore weights,
              DBIDs ids,
              DBIDRef latest,
              DistanceQuery<?> distQ)
Initialize the weight list. 
 | 
(package private) static double | 
initialWeights(WritableDoubleDataStore weights,
              DBIDs ids,
              NumberVector first,
              DistanceQuery<? super NumberVector> distQ)
Initialize the weight list. 
 | 
private static double | 
updateWeights(WritableDoubleDataStore weights,
             DBIDs ids,
             DBIDRef latest,
             DistanceQuery<?> distQ)
Update the weight list. 
 | 
private static double | 
updateWeights(WritableDoubleDataStore weights,
             DBIDs ids,
             NumberVector latest,
             DistanceQuery<? super NumberVector> distQ)
Update the weight list. 
 | 
unboxVectorspublic KMeansPlusPlusInitialMeans(RandomFactory rnd)
rnd - Random generator.public double[][] chooseInitialMeans(Database database, Relation<? extends NumberVector> relation, int k, NumberVectorDistanceFunction<?> distanceFunction)
KMeansInitializationchooseInitialMeans in interface KMeansInitializationdatabase - Database contextrelation - Relationk - Parameter kdistanceFunction - Distance functionpublic DBIDs chooseInitialMedoids(int k, DBIDs ids, DistanceQuery<? super O> distQ)
KMedoidsInitializationchooseInitialMedoids in interface KMedoidsInitialization<O>k - Parameter kids - Candidate IDs.distQ - Distance functionstatic double initialWeights(WritableDoubleDataStore weights, DBIDs ids, NumberVector first, DistanceQuery<? super NumberVector> distQ)
weights - Weight listids - IDsfirst - Added IDdistQ - Distance querystatic double initialWeights(WritableDoubleDataStore weights, DBIDs ids, DBIDRef latest, DistanceQuery<?> distQ)
weights - Weight listids - IDslatest - Added IDdistQ - Distance querystatic void chooseRemaining(Relation<? extends NumberVector> relation, DBIDs ids, DistanceQuery<NumberVector> distQ, int k, java.util.List<NumberVector> means, WritableDoubleDataStore weights, double weightsum, java.util.Random random)
relation - Data relationids - IDsdistQ - Distance functionk - Number of means to choosemeans - Means storageweights - Weights (initialized!)weightsum - Sum of weightsrandom - Random generatorstatic void chooseRemaining(DBIDs ids, DistanceQuery<?> distQ, int k, ArrayModifiableDBIDs means, WritableDoubleDataStore weights, double weightsum, java.util.Random random)
ids - IDsdistQ - Distance functionk - Number of means to choosemeans - Means storageweights - Weights (initialized!)weightsum - Sum of weightsrandom - Random generatorprivate static double updateWeights(WritableDoubleDataStore weights, DBIDs ids, DBIDRef latest, DistanceQuery<?> distQ)
weights - Weight listids - IDslatest - Added IDdistQ - Distance queryprivate static double updateWeights(WritableDoubleDataStore weights, DBIDs ids, NumberVector latest, DistanceQuery<? super NumberVector> distQ)
weights - Weight listids - IDslatest - Added IDdistQ - Distance queryCopyright © 2019 ELKI Development Team. License information.