Esempio n. 1
0
 @Test
 public void testGaussianClusterClassification() {
   ClusterClassifier classifier = newGaussianClassifier();
   Vector pdf = classifier.classify(new DenseVector(2));
   assertEquals("[0,0]", "[0.212, 0.576, 0.212]", AbstractCluster.formatVector(pdf, null));
   pdf = classifier.classify(new DenseVector(2).assign(2));
   assertEquals("[2,2]", "[0.952, 0.047, 0.000]", AbstractCluster.formatVector(pdf, null));
 }
Esempio n. 2
0
 @Test
 public void testSoftClusterClassification() {
   ClusterClassifier classifier = newSoftClusterClassifier();
   Vector pdf = classifier.classify(new DenseVector(2));
   assertEquals("[0,0]", "[0.000, 1.000, 0.000]", 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));
 }
Esempio n. 3
0
 @Test
 public void testClusterClassification() {
   ClusterClassifier classifier = newClusterClassifier();
   Vector pdf = classifier.classify(new DenseVector(2));
   assertEquals("[0,0]", "[0.107, 0.787, 0.107]", AbstractCluster.formatVector(pdf, null));
   pdf = classifier.classify(new DenseVector(2).assign(2));
   assertEquals("[2,2]", "[0.867, 0.117, 0.016]", AbstractCluster.formatVector(pdf, null));
 }
Esempio n. 4
0
 @Test(expected = UnsupportedOperationException.class)
 public void testMSCanopyClassification() {
   List<Cluster> models = Lists.newArrayList();
   DistanceMeasure measure = new ManhattanDistanceMeasure();
   models.add(new MeanShiftCanopy(new DenseVector(2).assign(1), 0, measure));
   models.add(new MeanShiftCanopy(new DenseVector(2), 1, measure));
   models.add(new MeanShiftCanopy(new DenseVector(2).assign(-1), 2, measure));
   ClusterClassifier classifier = new ClusterClassifier(models);
   classifier.classify(new DenseVector(2));
 }
Esempio n. 5
0
 @Test
 public void testClusterIteratorDirichlet() {
   List<Vector> data = TestKmeansClustering.getPoints(TestKmeansClustering.REFERENCE);
   ClusteringPolicy policy = new DirichletClusteringPolicy(3, 1);
   ClusterClassifier prior = newClusterClassifier();
   ClusterIterator iterator = new ClusterIterator(policy);
   ClusterClassifier posterior = iterator.iterate(data, prior, 5);
   assertEquals(3, posterior.getModels().size());
   for (Cluster cluster : posterior.getModels()) {
     System.out.println(cluster.asFormatString(null));
   }
 }
Esempio n. 6
0
 @Test
 public void testCanopyClassification() {
   List<Cluster> models = Lists.newArrayList();
   DistanceMeasure measure = new ManhattanDistanceMeasure();
   models.add(new Canopy(new DenseVector(2).assign(1), 0, measure));
   models.add(new Canopy(new DenseVector(2), 1, measure));
   models.add(new Canopy(new DenseVector(2).assign(-1), 2, measure));
   ClusterClassifier classifier = new ClusterClassifier(models);
   Vector pdf = classifier.classify(new DenseVector(2));
   assertEquals("[0,0]", "[0.107, 0.787, 0.107]", AbstractCluster.formatVector(pdf, null));
   pdf = classifier.classify(new DenseVector(2).assign(2));
   assertEquals("[2,2]", "[0.867, 0.117, 0.016]", AbstractCluster.formatVector(pdf, null));
 }
Esempio n. 7
0
  @Test
  public void testSeqFileClusterIteratorKMeans() throws IOException {
    Path pointsPath = getTestTempDirPath("points");
    Path priorPath = getTestTempDirPath("prior");
    Path outPath = getTestTempDirPath("output");
    Configuration conf = new Configuration();
    FileSystem fs = FileSystem.get(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 = newClusterClassifier();
    writeClassifier(prior, conf, path, fs);
    assertEquals(3, prior.getModels().size());
    System.out.println("Prior");
    for (Cluster cluster : prior.getModels()) {
      System.out.println(cluster.asFormatString(null));
    }
    ClusteringPolicy policy = new KMeansClusteringPolicy();
    ClusterIterator iterator = new ClusterIterator(policy);
    iterator.iterate(pointsPath, path, outPath, 5);

    for (int i = 1; i <= 5; i++) {
      System.out.println("Classifier-" + i);
      ClusterClassifier posterior = readClassifier(conf, new Path(outPath, "classifier-" + i), fs);
      assertEquals(3, posterior.getModels().size());
      for (Cluster cluster : posterior.getModels()) {
        System.out.println(cluster.asFormatString(null));
      }
    }
  }
Esempio n. 8
0
 @Test
 public void testGaussianClassifierSerialization() throws Exception {
   ClusterClassifier classifier = newGaussianClassifier();
   ClusterClassifier classifierOut = writeAndRead(classifier);
   assertEquals(classifier.getModels().size(), classifierOut.getModels().size());
   assertEquals(
       classifier.getModels().get(0).getClass().getName(),
       classifierOut.getModels().get(0).getClass().getName());
 }