You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by je...@apache.org on 2012/06/01 18:22:10 UTC
svn commit: r1345269 -
/mahout/trunk/integration/src/test/java/org/apache/mahout/clustering/TestClusterEvaluator.java
Author: jeastman
Date: Fri Jun 1 16:22:10 2012
New Revision: 1345269
URL: http://svn.apache.org/viewvc?rev=1345269&view=rev
Log:
MAHOUT-1020: fixed path names for testKmeans and testFuzzyKmeans that were causing representative points calculation to fail. Evaluator results now look more reasonable.
Modified:
mahout/trunk/integration/src/test/java/org/apache/mahout/clustering/TestClusterEvaluator.java
Modified: mahout/trunk/integration/src/test/java/org/apache/mahout/clustering/TestClusterEvaluator.java
URL: http://svn.apache.org/viewvc/mahout/trunk/integration/src/test/java/org/apache/mahout/clustering/TestClusterEvaluator.java?rev=1345269&r1=1345268&r2=1345269&view=diff
==============================================================================
--- mahout/trunk/integration/src/test/java/org/apache/mahout/clustering/TestClusterEvaluator.java (original)
+++ mahout/trunk/integration/src/test/java/org/apache/mahout/clustering/TestClusterEvaluator.java Fri Jun 1 16:22:10 2012
@@ -58,8 +58,7 @@ import org.slf4j.LoggerFactory;
public final class TestClusterEvaluator extends MahoutTestCase {
- private static final double[][] REFERENCE = { {1, 1}, {2, 1}, {1, 2}, {2, 2},
- {3, 3}, {4, 4}, {5, 4}, {4, 5}, {5, 5}};
+ private static final double[][] REFERENCE = { {1, 1}, {2, 1}, {1, 2}, {2, 2}, {3, 3}, {4, 4}, {5, 4}, {4, 5}, {5, 5}};
private List<VectorWritable> referenceData = Lists.newArrayList();
@@ -69,8 +68,7 @@ public final class TestClusterEvaluator
private List<Cluster> clusters;
- private static final Logger log = LoggerFactory
- .getLogger(TestClusterEvaluator.class);
+ private static final Logger log = LoggerFactory.getLogger(TestClusterEvaluator.class);
private Configuration conf;
@@ -107,11 +105,9 @@ public final class TestClusterEvaluator
* double standard deviation of the samples
*/
private void generateSamples(int num, double mx, double my, double sd) {
- log.info("Generating {} samples m=[{}, {}] sd={}", new Object[] {num, mx,
- my, sd});
+ log.info("Generating {} samples m=[{}, {}] sd={}", new Object[] {num, mx, my, sd});
for (int i = 0; i < num; i++) {
- sampleData.add(new VectorWritable(new DenseVector(new double[] {
- UncommonDistributions.rNorm(mx, sd),
+ sampleData.add(new VectorWritable(new DenseVector(new double[] {UncommonDistributions.rNorm(mx, sd),
UncommonDistributions.rNorm(my, sd)})));
}
}
@@ -123,13 +119,16 @@ public final class TestClusterEvaluator
}
private void printRepPoints(int numIterations) throws IOException {
+ printRepPoints(output, numIterations);
+ }
+
+ private void printRepPoints(Path output, int numIterations) throws IOException {
for (int i = 0; i <= numIterations; i++) {
- Path out = new Path(getTestTempDirPath("output"), "representativePoints-"
- + i);
+ Path out = new Path(output, "representativePoints-" + i);
System.out.println("Representative Points for iteration " + i);
Configuration conf = new Configuration();
- for (Pair<IntWritable,VectorWritable> record : new SequenceFileDirIterable<IntWritable,VectorWritable>(
- out, PathType.LIST, PathFilters.logsCRCFilter(), null, true, conf)) {
+ for (Pair<IntWritable,VectorWritable> record : new SequenceFileDirIterable<IntWritable,VectorWritable>(out,
+ PathType.LIST, PathFilters.logsCRCFilter(), null, true, conf)) {
System.out.println("\tC-" + record.getFirst().get() + ": "
+ AbstractCluster.formatVector(record.getSecond().get(), null));
}
@@ -137,8 +136,7 @@ public final class TestClusterEvaluator
}
/**
- * Initialize synthetic data using 4 clusters dC units from origin having 4
- * representative points dP from each center
+ * Initialize synthetic data using 4 clusters dC units from origin having 4 representative points dP from each center
*
* @param dC
* a double cluster center offset
@@ -149,284 +147,223 @@ public final class TestClusterEvaluator
*/
private void initData(double dC, double dP, DistanceMeasure measure) {
clusters = Lists.newArrayList();
- clusters.add(new Canopy(new DenseVector(new double[] {-dC, -dC}), 1,
- measure));
- clusters
- .add(new Canopy(new DenseVector(new double[] {-dC, dC}), 3, measure));
- clusters
- .add(new Canopy(new DenseVector(new double[] {dC, dC}), 5, measure));
- clusters
- .add(new Canopy(new DenseVector(new double[] {dC, -dC}), 7, measure));
+ clusters.add(new Canopy(new DenseVector(new double[] {-dC, -dC}), 1, measure));
+ clusters.add(new Canopy(new DenseVector(new double[] {-dC, dC}), 3, measure));
+ clusters.add(new Canopy(new DenseVector(new double[] {dC, dC}), 5, measure));
+ clusters.add(new Canopy(new DenseVector(new double[] {dC, -dC}), 7, measure));
representativePoints = Maps.newHashMap();
for (Cluster cluster : clusters) {
List<VectorWritable> points = Lists.newArrayList();
representativePoints.put(cluster.getId(), points);
points.add(new VectorWritable(cluster.getCenter().clone()));
- points.add(new VectorWritable(cluster.getCenter().plus(
- new DenseVector(new double[] {dP, dP}))));
- points.add(new VectorWritable(cluster.getCenter().plus(
- new DenseVector(new double[] {dP, -dP}))));
- points.add(new VectorWritable(cluster.getCenter().plus(
- new DenseVector(new double[] {-dP, -dP}))));
- points.add(new VectorWritable(cluster.getCenter().plus(
- new DenseVector(new double[] {-dP, dP}))));
+ points.add(new VectorWritable(cluster.getCenter().plus(new DenseVector(new double[] {dP, dP}))));
+ points.add(new VectorWritable(cluster.getCenter().plus(new DenseVector(new double[] {dP, -dP}))));
+ points.add(new VectorWritable(cluster.getCenter().plus(new DenseVector(new double[] {-dP, -dP}))));
+ points.add(new VectorWritable(cluster.getCenter().plus(new DenseVector(new double[] {-dP, dP}))));
}
}
@Test
public void testRepresentativePoints() throws Exception {
- ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
Configuration conf = new Configuration();
// run using MR reference point calculation
CanopyDriver.run(conf, testdata, output, measure, 3.1, 1.1, true, 0.0, true);
int numIterations = 2;
Path clustersIn = new Path(output, "clusters-0-final");
- RepresentativePointsDriver.run(conf, clustersIn, new Path(output,
- "clusteredPoints"), output, measure, numIterations, false);
+ RepresentativePointsDriver.run(conf, clustersIn, new Path(output, "clusteredPoints"), output, measure,
+ numIterations, false);
printRepPoints(numIterations);
ClusterEvaluator evaluatorMR = new ClusterEvaluator(conf, clustersIn);
// now run again using sequential reference point calculation
HadoopUtil.delete(conf, output);
CanopyDriver.run(conf, testdata, output, measure, 3.1, 1.1, true, 0.0, true);
- RepresentativePointsDriver.run(conf, clustersIn, new Path(output,
- "clusteredPoints"), output, measure, numIterations, true);
+ RepresentativePointsDriver.run(conf, clustersIn, new Path(output, "clusteredPoints"), output, measure,
+ numIterations, true);
printRepPoints(numIterations);
ClusterEvaluator evaluatorSeq = new ClusterEvaluator(conf, clustersIn);
// compare results
- assertEquals("InterCluster Density", evaluatorMR.interClusterDensity(),
- evaluatorSeq.interClusterDensity(), EPSILON);
- assertEquals("IntraCluster Density", evaluatorMR.intraClusterDensity(),
- evaluatorSeq.intraClusterDensity(), EPSILON);
+ assertEquals("InterCluster Density", evaluatorMR.interClusterDensity(), evaluatorSeq.interClusterDensity(), EPSILON);
+ assertEquals("IntraCluster Density", evaluatorMR.intraClusterDensity(), evaluatorSeq.intraClusterDensity(), EPSILON);
}
@Test
public void testCluster0() throws IOException {
- ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
initData(1, 0.25, measure);
- ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints,
- clusters, measure);
- assertEquals("inter cluster density", 0.33333333333333315,
- evaluator.interClusterDensity(), EPSILON);
- assertEquals("intra cluster density", 0.3656854249492381,
- evaluator.intraClusterDensity(), EPSILON);
+ ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints, clusters, measure);
+ assertEquals("inter cluster density", 0.33333333333333315, evaluator.interClusterDensity(), EPSILON);
+ assertEquals("intra cluster density", 0.3656854249492381, evaluator.intraClusterDensity(), EPSILON);
}
@Test
public void testCluster1() throws IOException {
- ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
initData(1, 0.5, measure);
- ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints,
- clusters, measure);
- assertEquals("inter cluster density", 0.33333333333333315,
- evaluator.interClusterDensity(), EPSILON);
- assertEquals("intra cluster density", 0.3656854249492381,
- evaluator.intraClusterDensity(), EPSILON);
+ ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints, clusters, measure);
+ assertEquals("inter cluster density", 0.33333333333333315, evaluator.interClusterDensity(), EPSILON);
+ assertEquals("intra cluster density", 0.3656854249492381, evaluator.intraClusterDensity(), EPSILON);
}
@Test
public void testCluster2() throws IOException {
- ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
initData(1, 0.75, measure);
- ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints,
- clusters, measure);
- assertEquals("inter cluster density", 0.33333333333333315,
- evaluator.interClusterDensity(), EPSILON);
- assertEquals("intra cluster density", 0.3656854249492381,
- evaluator.intraClusterDensity(), EPSILON);
+ ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints, clusters, measure);
+ assertEquals("inter cluster density", 0.33333333333333315, evaluator.interClusterDensity(), EPSILON);
+ assertEquals("intra cluster density", 0.3656854249492381, evaluator.intraClusterDensity(), EPSILON);
}
@Test
public void testEmptyCluster() throws IOException {
- ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
initData(1, 0.25, measure);
- Canopy cluster = new Canopy(new DenseVector(new double[] {10, 10}), 19,
- measure);
+ Canopy cluster = new Canopy(new DenseVector(new double[] {10, 10}), 19, measure);
clusters.add(cluster);
List<VectorWritable> points = Lists.newArrayList();
representativePoints.put(cluster.getId(), points);
- ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints,
- clusters, measure);
- assertEquals("inter cluster density", 0.33333333333333315,
- evaluator.interClusterDensity(), EPSILON);
- assertEquals("intra cluster density", 0.3656854249492381,
- evaluator.intraClusterDensity(), EPSILON);
+ ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints, clusters, measure);
+ assertEquals("inter cluster density", 0.33333333333333315, evaluator.interClusterDensity(), EPSILON);
+ assertEquals("intra cluster density", 0.3656854249492381, evaluator.intraClusterDensity(), EPSILON);
}
@Test
public void testSingleValueCluster() throws IOException {
- ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
initData(1, 0.25, measure);
- Canopy cluster = new Canopy(new DenseVector(new double[] {0, 0}), 19,
- measure);
+ Canopy cluster = new Canopy(new DenseVector(new double[] {0, 0}), 19, measure);
clusters.add(cluster);
List<VectorWritable> points = Lists.newArrayList();
- points.add(new VectorWritable(cluster.getCenter().plus(
- new DenseVector(new double[] {1, 1}))));
+ points.add(new VectorWritable(cluster.getCenter().plus(new DenseVector(new double[] {1, 1}))));
representativePoints.put(cluster.getId(), points);
- ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints,
- clusters, measure);
- assertEquals("inter cluster density", 0.33333333333333315,
- evaluator.interClusterDensity(), EPSILON);
- assertEquals("intra cluster density", 0.3656854249492381,
- evaluator.intraClusterDensity(), EPSILON);
+ ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints, clusters, measure);
+ assertEquals("inter cluster density", 0.33333333333333315, evaluator.interClusterDensity(), EPSILON);
+ assertEquals("intra cluster density", 0.3656854249492381, evaluator.intraClusterDensity(), EPSILON);
}
/**
- * Representative points extraction will duplicate the cluster center if the
- * cluster has no assigned points. These clusters should be ignored like empty
- * clusters above
+ * Representative points extraction will duplicate the cluster center if the cluster has no assigned points. These
+ * clusters should be ignored like empty clusters above
*
* @throws IOException
*/
@Test
public void testAllSameValueCluster() throws IOException {
- ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(referenceData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
initData(1, 0.25, measure);
- Canopy cluster = new Canopy(new DenseVector(new double[] {0, 0}), 19,
- measure);
+ Canopy cluster = new Canopy(new DenseVector(new double[] {0, 0}), 19, measure);
clusters.add(cluster);
List<VectorWritable> points = Lists.newArrayList();
points.add(new VectorWritable(cluster.getCenter()));
points.add(new VectorWritable(cluster.getCenter()));
points.add(new VectorWritable(cluster.getCenter()));
representativePoints.put(cluster.getId(), points);
- ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints,
- clusters, measure);
- assertEquals("inter cluster density", 0.33333333333333315,
- evaluator.interClusterDensity(), EPSILON);
- assertEquals("intra cluster density", 0.3656854249492381,
- evaluator.intraClusterDensity(), EPSILON);
+ ClusterEvaluator evaluator = new ClusterEvaluator(representativePoints, clusters, measure);
+ assertEquals("inter cluster density", 0.33333333333333315, evaluator.interClusterDensity(), EPSILON);
+ assertEquals("intra cluster density", 0.3656854249492381, evaluator.intraClusterDensity(), EPSILON);
}
@Test
public void testCanopy() throws Exception {
- ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
Configuration conf = new Configuration();
CanopyDriver.run(conf, testdata, output, measure, 3.1, 1.1, true, 0.0, true);
int numIterations = 10;
Path clustersIn = new Path(output, "clusters-0-final");
- RepresentativePointsDriver.run(conf, clustersIn, new Path(output,
- "clusteredPoints"), output, measure, numIterations, true);
+ RepresentativePointsDriver.run(conf, clustersIn, new Path(output, "clusteredPoints"), output, measure,
+ numIterations, true);
+ printRepPoints(numIterations);
ClusterEvaluator evaluator = new ClusterEvaluator(conf, clustersIn);
// now print out the Results
- System.out.println("Intra-cluster density = "
- + evaluator.intraClusterDensity());
- System.out.println("Inter-cluster density = "
- + evaluator.interClusterDensity());
-
- printRepPoints(numIterations);
+ System.out.println("Intra-cluster density = " + evaluator.intraClusterDensity());
+ System.out.println("Inter-cluster density = " + evaluator.interClusterDensity());
}
@Test
public void testKmeans() throws Exception {
- ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
// now run the Canopy job to prime kMeans canopies
Configuration conf = new Configuration();
CanopyDriver.run(conf, testdata, output, measure, 3.1, 1.1, false, 0.0, true);
// now run the KMeans job
Path kmeansOutput = new Path(output, "kmeans");
- KMeansDriver.run(testdata, new Path(output, "clusters-0-final"), kmeansOutput, measure,
- 0.001, 10, true, 0.0, true);
+ KMeansDriver.run(testdata, new Path(output, "clusters-0-final"), kmeansOutput, measure, 0.001, 10, true, 0.0, true);
int numIterations = 10;
- Path clustersIn = new Path(output, "clusters-2");
- RepresentativePointsDriver.run(conf, clustersIn, new Path(output,
- "clusteredPoints"), kmeansOutput, measure, numIterations, true);
+ Path clustersIn = new Path(kmeansOutput, "clusters-2");
+ RepresentativePointsDriver.run(conf, clustersIn, new Path(kmeansOutput, "clusteredPoints"), kmeansOutput, measure,
+ numIterations, true);
+ printRepPoints(kmeansOutput, numIterations);
ClusterEvaluator evaluator = new ClusterEvaluator(conf, clustersIn);
// now print out the Results
- System.out.println("Intra-cluster density = "
- + evaluator.intraClusterDensity());
- System.out.println("Inter-cluster density = "
- + evaluator.interClusterDensity());
- printRepPoints(numIterations);
+ System.out.println("Intra-cluster density = " + evaluator.intraClusterDensity());
+ System.out.println("Inter-cluster density = " + evaluator.interClusterDensity());
}
@Test
public void testFuzzyKmeans() throws Exception {
- ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
// now run the Canopy job to prime kMeans canopies
Configuration conf = new Configuration();
CanopyDriver.run(conf, testdata, output, measure, 3.1, 1.1, false, 0.0, true);
Path fuzzyKMeansOutput = new Path(output, "fuzzyk");
- // now run the KMeans job
- FuzzyKMeansDriver.run(testdata, new Path(output, "clusters-0-final"), fuzzyKMeansOutput ,
- measure, 0.001, 10, 2, true, true, 0, true);
+ // now run the KMeans job
+ FuzzyKMeansDriver.run(testdata, new Path(output, "clusters-0-final"), fuzzyKMeansOutput, measure, 0.001, 10, 2,
+ true, true, 0, true);
int numIterations = 10;
- Path clustersIn = new Path(output, "clusters-4");
- RepresentativePointsDriver.run(conf, clustersIn, new Path(output,
- "clusteredPoints"), fuzzyKMeansOutput, measure, numIterations, true);
+ Path clustersIn = new Path(fuzzyKMeansOutput, "clusters-4");
+ RepresentativePointsDriver.run(conf, clustersIn, new Path(fuzzyKMeansOutput, "clusteredPoints"), fuzzyKMeansOutput,
+ measure, numIterations, true);
+ printRepPoints(fuzzyKMeansOutput, numIterations);
ClusterEvaluator evaluator = new ClusterEvaluator(conf, clustersIn);
// now print out the Results
- System.out.println("Intra-cluster density = "
- + evaluator.intraClusterDensity());
- System.out.println("Inter-cluster density = "
- + evaluator.interClusterDensity());
- printRepPoints(numIterations);
+ System.out.println("Intra-cluster density = " + evaluator.intraClusterDensity());
+ System.out.println("Inter-cluster density = " + evaluator.interClusterDensity());
}
@Test
public void testMeanShift() throws Exception {
- ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata,
- "file1"), fs, conf);
+ ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata, "file1"), fs, conf);
DistanceMeasure measure = new EuclideanDistanceMeasure();
IKernelProfile kernelProfile = new TriangularKernelProfile();
Configuration conf = new Configuration();
- MeanShiftCanopyDriver.run(conf, testdata, output, measure, kernelProfile,
- 2.1, 1.0, 0.001, 10, false, true, true);
+ MeanShiftCanopyDriver.run(conf, testdata, output, measure, kernelProfile, 2.1, 1.0, 0.001, 10, false, true, true);
int numIterations = 10;
Path clustersIn = new Path(output, "clusters-7-final");
- RepresentativePointsDriver.run(conf, clustersIn, new Path(output,
- "clusteredPoints"), output, measure, numIterations, true);
+ RepresentativePointsDriver.run(conf, clustersIn, new Path(output, "clusteredPoints"), output, measure,
+ numIterations, true);
+ printRepPoints(numIterations);
ClusterEvaluator evaluator = new ClusterEvaluator(conf, clustersIn);
// now print out the Results
- System.out.println("Intra-cluster density = "
- + evaluator.intraClusterDensity());
- System.out.println("Inter-cluster density = "
- + evaluator.interClusterDensity());
- printRepPoints(numIterations);
+ System.out.println("Intra-cluster density = " + evaluator.intraClusterDensity());
+ System.out.println("Inter-cluster density = " + evaluator.interClusterDensity());
}
@Test
public void testDirichlet() throws Exception {
- ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata,
- "file1"), fs, conf);
- DistributionDescription description = new DistributionDescription(
- GaussianClusterDistribution.class.getName(),
+ ClusteringTestUtils.writePointsToFile(sampleData, new Path(testdata, "file1"), fs, conf);
+ DistributionDescription description = new DistributionDescription(GaussianClusterDistribution.class.getName(),
DenseVector.class.getName(), null, 2);
- DirichletDriver.run(new Configuration(), testdata, output, description, 15, 5, 1.0, true,
- true, (double) 0, true);
+ DirichletDriver.run(new Configuration(), testdata, output, description, 15, 5, 1.0, true, true, (double) 0, true);
int numIterations = 10;
Configuration conf = new Configuration();
Path clustersIn = new Path(output, "clusters-5-final");
- RepresentativePointsDriver.run(conf, clustersIn, new Path(output,
- "clusteredPoints"), output, new EuclideanDistanceMeasure(),
- numIterations, true);
+ RepresentativePointsDriver.run(conf, clustersIn, new Path(output, "clusteredPoints"), output,
+ new EuclideanDistanceMeasure(), numIterations, true);
+ printRepPoints(numIterations);
ClusterEvaluator evaluator = new ClusterEvaluator(conf, clustersIn);
// now print out the Results
- System.out.println("Intra-cluster density = "
- + evaluator.intraClusterDensity());
- System.out.println("Inter-cluster density = "
- + evaluator.interClusterDensity());
- printRepPoints(numIterations);
+ System.out.println("Intra-cluster density = " + evaluator.intraClusterDensity());
+ System.out.println("Inter-cluster density = " + evaluator.interClusterDensity());
}
}