@Override public ClusterResult doIncrementalCluster(DataSet ds, List<Cluster> clusters) { return doCluster(ds, clusters); }
public void run(){ terminate(); } });
if (exec == null) init(); List<List<? extends Instance>> blocks = createBlocks(clusters, 100); Cluster bestCluster = bestCluster(inst, blocks).c; bestCluster = createCluster(); bestCluster.add(inst); if (!onlineUpdate) bestCluster.updateCentroid();
double bestScore = Double.MAX_VALUE; Cluster bestCluster = null; CompletionService<DistanceResult> batch = new ExecutorCompletionService<DistanceResult>(getExecutor()); DistanceResult result = batch.take().get(); if (isCandidate(result.i, result.c, result.distance, bestCluster, bestScore)) { bestScore = result.distance; bestCluster = result.c;
@Override public DistanceResult call() { double bestDist = Double.MAX_VALUE; Instance bestMatch = null; for (Instance c : clusters) { double d = distance(inst, c); if (d < bestDist) { bestDist = d; bestMatch = c; } } return new DistanceResult(inst, (Cluster)bestMatch, bestDist); } });
for (FeatureTypeDefinition typedef : this.getTypeDefs()) { if (typedef.distFunc.getWeight() < 0.00001) continue; // skip if weight is near zero
@Override public ClusterResult doCluster(DataSet ds) { return doCluster(ds, new LinkedList<Cluster>()); }
ClusterResult modified = super.doCluster(ds, kmeans);