@Test public void testSoftClusterClassifierSerialization() throws Exception { ClusterClassifier classifier = newSoftClusterClassifier(); ClusterClassifier classifierOut = writeAndRead(classifier); assertEquals(classifier.getModels().size(), classifierOut.getModels().size()); assertEquals(classifier.getModels().get(0).getClass().getName(), classifierOut.getModels().get(0).getClass() .getName()); }
private ClusterClassifier writeAndRead(ClusterClassifier classifier) throws IOException { Path path = new Path(getTestTempDirPath(), "output"); classifier.writeToSeqFiles(path); ClusterClassifier newClassifier = new ClusterClassifier(); newClassifier.readFromSeqFiles(getConfiguration(), path); return newClassifier; }
@Test public void testDMClassifierSerialization() throws Exception { ClusterClassifier classifier = newDMClassifier(); ClusterClassifier classifierOut = writeAndRead(classifier); assertEquals(classifier.getModels().size(), classifierOut.getModels().size()); assertEquals(classifier.getModels().get(0).getClass().getName(), classifierOut.getModels().get(0).getClass() .getName()); }
@Test public void testClusterClassifierSerialization() throws Exception { ClusterClassifier classifier = newKlusterClassifier(); ClusterClassifier classifierOut = writeAndRead(classifier); assertEquals(classifier.getModels().size(), classifierOut.getModels().size()); assertEquals(classifier.getModels().get(0).getClass().getName(), classifierOut.getModels().get(0).getClass() .getName()); }
@Test public void testSeqFileClusterIteratorKMeans() throws IOException { Path pointsPath = getTestTempDirPath("points"); Path priorPath = getTestTempDirPath("prior"); Path outPath = getTestTempDirPath("output"); Configuration conf = getConfiguration(); FileSystem fs = FileSystem.get(pointsPath.toUri(), conf); List<VectorWritable> points = TestKmeansClustering.getPointsWritable(TestKmeansClustering.REFERENCE); ClusteringTestUtils.writePointsToFile(points, new Path(pointsPath, "file1"), fs, conf); Path path = new Path(priorPath, "priorClassifier"); ClusterClassifier prior = newKlusterClassifier(); prior.writeToSeqFiles(path); assertEquals(3, prior.getModels().size()); System.out.println("Prior"); for (Cluster cluster : prior.getModels()) { String name = i == 4 ? "clusters-4-final" : "clusters-" + i; posterior.readFromSeqFiles(conf, new Path(outPath, name)); assertEquals(3, posterior.getModels().size()); for (Cluster cluster : posterior.getModels()) { System.out.println(cluster.asFormatString(null));
@Test public void testClusterIteratorKMeans() { List<Vector> data = TestKmeansClustering.getPoints(TestKmeansClustering.REFERENCE); ClusterClassifier prior = newKlusterClassifier(); ClusterClassifier posterior = ClusterIterator.iterate(data, prior, 5); assertEquals(3, posterior.getModels().size()); for (Cluster cluster : posterior.getModels()) { System.out.println(cluster.asFormatString(null)); } }
@Test public void testCosineKlusterClassification() { ClusterClassifier classifier = newCosineKlusterClassifier(); Vector pdf = classifier.classify(new DenseVector(2)); assertEquals("[0,0]", "[0.333,0.333,0.333]", AbstractCluster.formatVector(pdf, null)); pdf = classifier.classify(new DenseVector(2).assign(2)); assertEquals("[2,2]", "[0.429,0.429,0.143]", AbstractCluster.formatVector(pdf, null)); } }
@Test public void testDMClusterClassification() { ClusterClassifier classifier = newDMClassifier(); Vector pdf = classifier.classify(new DenseVector(2)); assertEquals("[0,0]", "[0.2,0.6,0.2]", AbstractCluster.formatVector(pdf, null)); pdf = classifier.classify(new DenseVector(2).assign(2)); assertEquals("[2,2]", "[0.493,0.296,0.211]", AbstractCluster.formatVector(pdf, null)); }
@Test public void testSoftClusterClassification() { ClusterClassifier classifier = newSoftClusterClassifier(); Vector pdf = classifier.classify(new DenseVector(2)); assertEquals("[0,0]", "[0.0,1.0,0.0]", AbstractCluster.formatVector(pdf, null)); pdf = classifier.classify(new DenseVector(2).assign(2)); assertEquals("[2,2]", "[0.735,0.184,0.082]", AbstractCluster.formatVector(pdf, null)); }
@Test public void testMRFileClusterIteratorKMeans() throws Exception { Path pointsPath = getTestTempDirPath("points"); Path priorPath = getTestTempDirPath("prior"); Path outPath = getTestTempDirPath("output"); Configuration conf = getConfiguration(); FileSystem fs = FileSystem.get(pointsPath.toUri(), conf); List<VectorWritable> points = TestKmeansClustering.getPointsWritable(TestKmeansClustering.REFERENCE); ClusteringTestUtils.writePointsToFile(points, new Path(pointsPath, "file1"), fs, conf); Path path = new Path(priorPath, "priorClassifier"); ClusterClassifier prior = newKlusterClassifier(); prior.writeToSeqFiles(path); ClusteringPolicy policy = new KMeansClusteringPolicy(); ClusterClassifier.writePolicy(policy, path); assertEquals(3, prior.getModels().size()); System.out.println("Prior"); for (Cluster cluster : prior.getModels()) { String name = i == 4 ? "clusters-4-final" : "clusters-" + i; posterior.readFromSeqFiles(conf, new Path(outPath, name)); assertEquals(3, posterior.getModels().size()); for (Cluster cluster : posterior.getModels()) { System.out.println(cluster.asFormatString(null));
@Test public void testClusterIteratorDirichlet() { List<Vector> data = TestKmeansClustering.getPoints(TestKmeansClustering.REFERENCE); ClusterClassifier prior = newKlusterClassifier(); ClusterClassifier posterior = ClusterIterator.iterate(data, prior, 5); assertEquals(3, posterior.getModels().size()); for (Cluster cluster : posterior.getModels()) { System.out.println(cluster.asFormatString(null)); } }
@Test public void testClusterClassification() { ClusterClassifier classifier = newKlusterClassifier(); Vector pdf = classifier.classify(new DenseVector(2)); assertEquals("[0,0]", "[0.2,0.6,0.2]", AbstractCluster.formatVector(pdf, null)); pdf = classifier.classify(new DenseVector(2).assign(2)); assertEquals("[2,2]", "[0.493,0.296,0.211]", AbstractCluster.formatVector(pdf, null)); }