@Override protected KMeansCompare<V> makeInstance() { return new KMeansCompare<>(distanceFunction, k, maxiter, initializer); } }
LOG.statistics(new StringStatistic(KEY + ".initialization", initializer.toString())); List<Vector> means = initializer.chooseInitialMeans(database, relation, k, getDistanceFunction(), Vector.FACTORY); for(; maxiter <= 0 || iteration < maxiter; iteration++) { LOG.incrementProcessed(prog); recomputeSeperation(means, cdist, diststat); boolean changed = assignToNearestCluster(relation, means, clusters, assignment, varsum, cdist, diststat); logVarstat(varstat, varsum); if(LOG.isStatistics()) { LOG.statistics(diststat); means = means(clusters, means, relation);
@Override public Clustering<KMeansModel> run(Database database, Relation<V> relation) { Instance instance = new Instance(relation, getDistanceFunction(), initialMeans(database, relation)); instance.run(maxiter); return instance.buildResult(); }
cluster.clear(); final NumberVectorDistanceFunction<?> df = getDistanceFunction(); double mult = (df instanceof SquaredEuclideanDistanceFunction) ? 4 : 2; for(DBIDIter iditer = relation.iterDBIDs(); iditer.valid(); iditer.advance()) {
@Test public void testKMeansCompare() { Database db = makeSimpleDatabase(UNITTEST + "different-densities-2d-no-noise.ascii", 1000); Clustering<?> result = new ELKIBuilder<KMeansCompare<DoubleVector>>(KMeansCompare.class) // .with(KMeans.K_ID, 5) // .with(KMeans.SEED_ID, 7) // .build().run(db); testFMeasure(db, result, 0.998005); testClusterSizes(result, new int[] { 199, 200, 200, 200, 201 }); } }
@Override public Clustering<KMeansModel> run(Database database, Relation<V> relation) { Instance instance = new Instance(relation, getDistanceFunction(), initialMeans(database, relation)); instance.run(maxiter); return instance.buildResult(); }
@Override protected KMeansCompare<V> makeInstance() { return new KMeansCompare<>(distanceFunction, k, maxiter, initializer); } }
@Override protected KMeansCompare<V> makeInstance() { return new KMeansCompare<>(distanceFunction, k, maxiter, initializer); } }