@Override public void close(ClusterClassifier posterior) { for (Cluster cluster : posterior.getModels()) { cluster.computeParameters(); } }
@Override public void close(ClusterClassifier posterior) { for (Cluster cluster : posterior.getModels()) { cluster.computeParameters(); } }
@Override protected void cleanup(Context context) throws IOException, InterruptedException { List<Cluster> clusters = classifier.getModels(); ClusterWritable cw = new ClusterWritable(); for (int index = 0; index < clusters.size(); index++) { cw.setValue(clusters.get(index)); context.write(new IntWritable(index), cw); } super.cleanup(context); }
@Override protected void cleanup(Context context) throws IOException, InterruptedException { List<Cluster> clusters = classifier.getModels(); ClusterWritable cw = new ClusterWritable(); for (int index = 0; index < clusters.size(); index++) { cw.setValue(clusters.get(index)); context.write(new IntWritable(index), cw); } super.cleanup(context); }
@Override protected void cleanup(Context context) throws IOException, InterruptedException { List<Cluster> clusters = classifier.getModels(); ClusterWritable cw = new ClusterWritable(); for (int index = 0; index < clusters.size(); index++) { cw.setValue(clusters.get(index)); context.write(new IntWritable(index), cw); } super.cleanup(context); }
@Override public void close(ClusterClassifier posterior) { boolean allConverged = true; for (Cluster cluster : posterior.getModels()) { org.apache.mahout.clustering.kmeans.Kluster kluster = (org.apache.mahout.clustering.kmeans.Kluster) cluster; boolean converged = kluster.calculateConvergence(convergenceDelta); allConverged = allConverged && converged; cluster.computeParameters(); } }
@Override public void close(ClusterClassifier posterior) { boolean allConverged = true; for (Cluster cluster : posterior.getModels()) { org.apache.mahout.clustering.kmeans.Kluster kluster = (org.apache.mahout.clustering.kmeans.Kluster) cluster; boolean converged = kluster.calculateConvergence(convergenceDelta); allConverged = allConverged && converged; cluster.computeParameters(); } }
@Override public void close(ClusterClassifier posterior) { for (Cluster cluster : posterior.getModels()) { ((org.apache.mahout.clustering.kmeans.Kluster) cluster).calculateConvergence(convergenceDelta); cluster.computeParameters(); } }
@Override public void close(ClusterClassifier posterior) { for (Cluster cluster : posterior.getModels()) { ((org.apache.mahout.clustering.kmeans.Kluster) cluster).calculateConvergence(convergenceDelta); cluster.computeParameters(); } }
@Override public void close(ClusterClassifier posterior) { boolean allConverged = true; for (Cluster cluster : posterior.getModels()) { org.apache.mahout.clustering.kmeans.Kluster kluster = (org.apache.mahout.clustering.kmeans.Kluster) cluster; boolean converged = kluster.calculateConvergence(convergenceDelta); allConverged = allConverged && converged; cluster.computeParameters(); } }
@Override public void close(ClusterClassifier posterior) { for (Cluster cluster : posterior.getModels()) { ((org.apache.mahout.clustering.kmeans.Kluster) cluster).calculateConvergence(convergenceDelta); cluster.computeParameters(); } }
@Override public Vector classify(Vector data, ClusterClassifier prior) { Collection<SoftCluster> clusters = Lists.newArrayList(); List<Double> distances = Lists.newArrayList(); for (Cluster model : prior.getModels()) { SoftCluster sc = (SoftCluster) model; clusters.add(sc); distances.add(sc.getMeasure().distance(data, sc.getCenter())); } FuzzyKMeansClusterer fuzzyKMeansClusterer = new FuzzyKMeansClusterer(); fuzzyKMeansClusterer.setM(m); return fuzzyKMeansClusterer.computePi(clusters, distances); }
@Override public Vector classify(Vector data, ClusterClassifier prior) { Collection<SoftCluster> clusters = Lists.newArrayList(); List<Double> distances = Lists.newArrayList(); for (Cluster model : prior.getModels()) { SoftCluster sc = (SoftCluster) model; clusters.add(sc); distances.add(sc.getMeasure().distance(data, sc.getCenter())); } FuzzyKMeansClusterer fuzzyKMeansClusterer = new FuzzyKMeansClusterer(); fuzzyKMeansClusterer.setM(m); return fuzzyKMeansClusterer.computePi(clusters, distances); }
@Override public Vector classify(Vector data, ClusterClassifier prior) { Collection<SoftCluster> clusters = new ArrayList<>(); List<Double> distances = new ArrayList<>(); for (Cluster model : prior.getModels()) { SoftCluster sc = (SoftCluster) model; clusters.add(sc); distances.add(sc.getMeasure().distance(data, sc.getCenter())); } FuzzyKMeansClusterer fuzzyKMeansClusterer = new FuzzyKMeansClusterer(); fuzzyKMeansClusterer.setM(m); return fuzzyKMeansClusterer.computePi(clusters, distances); }
@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()); }
@Override public Vector classify(Vector data, ClusterClassifier prior) { List<Cluster> models = prior.getModels(); int i = 0; Vector pdfs = new DenseVector(models.size()); for (Cluster model : models) { pdfs.set(i++, model.pdf(new VectorWritable(data))); } return pdfs.assign(new TimesFunction(), 1.0 / pdfs.zSum()); }
@Override public Vector classify(Vector data, ClusterClassifier prior) { List<Cluster> models = prior.getModels(); int i = 0; Vector pdfs = new DenseVector(models.size()); for (Cluster model : models) { pdfs.set(i++, model.pdf(new VectorWritable(data))); } return pdfs.assign(new TimesFunction(), 1.0 / pdfs.zSum()); }
@Override public Vector classify(Vector data, ClusterClassifier prior) { List<Cluster> models = prior.getModels(); int i = 0; Vector pdfs = new DenseVector(models.size()); for (Cluster model : models) { pdfs.set(i++, model.pdf(new VectorWritable(data))); } return pdfs.assign(new TimesFunction(), 1.0 / pdfs.zSum()); }
@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 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)); } }