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 2010/07/10 04:32:39 UTC
svn commit: r962745 - in
/mahout/trunk/core/src/main/java/org/apache/mahout/clustering: ./ canopy/
dirichlet/ dirichlet/models/ fuzzykmeans/ kmeans/ meanshift/
Author: jeastman
Date: Sat Jul 10 02:32:38 2010
New Revision: 962745
URL: http://svn.apache.org/viewvc?rev=962745&view=rev
Log:
The rest of: More refactoring to clean up the clustering display examples
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/Cluster.java
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/canopy/Canopy.java
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletCluster.java
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/L1Model.java
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/fuzzykmeans/SoftCluster.java
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/KMeansClusterer.java
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/meanshift/MeanShiftCanopy.java
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/Cluster.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/Cluster.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/Cluster.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/Cluster.java Sat Jul 10 02:32:38 2010
@@ -46,6 +46,14 @@ public interface Cluster {
* @return a Vector
*/
Vector getCenter();
+
+ /**
+ * Get the "radius" of the Cluster as a Vector. Usually the radius is the standard deviation expressed
+ * as a Vector of size equal to the center. Some clusters may return zero values if not appropriate.
+ *
+ * @return aVector
+ */
+ Vector getRadius();
/**
* Get an integer denoting the number of points observed by this cluster
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/canopy/Canopy.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/canopy/Canopy.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/canopy/Canopy.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/canopy/Canopy.java Sat Jul 10 02:32:38 2010
@@ -127,4 +127,9 @@ public class Canopy extends ClusterBase
public Vector computeCentroid() {
return getPointTotal().divide(getNumPoints());
}
+
+ @Override
+ public Vector getRadius() {
+ return getCenter().like();
+ }
}
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletCluster.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletCluster.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletCluster.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletCluster.java Sat Jul 10 02:32:38 2010
@@ -128,4 +128,9 @@ public class DirichletCluster<O> impleme
return model.getNumPoints();
}
+ @Override
+ public Vector getRadius() {
+ return model.getRadius();
+ }
+
}
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java Sat Jul 10 02:32:38 2010
@@ -209,4 +209,9 @@ public class AsymmetricSampledNormalMode
public int getNumPoints() {
return s0;
}
+
+ @Override
+ public Vector getRadius() {
+ return getStdDev();
+ }
}
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/L1Model.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/L1Model.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/L1Model.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/L1Model.java Sat Jul 10 02:32:38 2010
@@ -135,4 +135,9 @@ public class L1Model implements Model<Ve
return counter;
}
+ @Override
+ public Vector getRadius() {
+ return null;
+ }
+
}
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java Sat Jul 10 02:32:38 2010
@@ -192,4 +192,9 @@ public class NormalModel implements Mode
public int getNumPoints() {
return s0;
}
+
+ @Override
+ public Vector getRadius() {
+ return mean.like().assign(getStdDev());
+ }
}
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/fuzzykmeans/SoftCluster.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/fuzzykmeans/SoftCluster.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/fuzzykmeans/SoftCluster.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/fuzzykmeans/SoftCluster.java Sat Jul 10 02:32:38 2010
@@ -240,6 +240,8 @@ public class SoftCluster extends Cluster
/** Compute the centroid and set the center to it. */
public void recomputeCenter() {
this.setCenter(computeCentroid());
+ // set a reasonable value, for consistency with other Clusters
+ setNumPoints((int) weightedPointTotal.zSum());
pointProbSum = 0;
weightedPointTotal = getCenter().like();
}
@@ -261,4 +263,9 @@ public class SoftCluster extends Cluster
return formatCluster(this);
}
+ @Override
+ public Vector getRadius() {
+ return getCenter().like().assign(std());
+ }
+
}
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java Sat Jul 10 02:32:38 2010
@@ -209,9 +209,6 @@ public class Cluster extends ClusterBase
std = getStd();
setCenter(computeCentroid());
centroid = null;
- setNumPoints(0);
- this.setPointTotal(getCenter().like());
- this.pointSquaredTotal = getCenter().like();
}
/**
@@ -247,4 +244,9 @@ public class Cluster extends ClusterBase
return stds.zSum() / stds.size();
}
+ @Override
+ public Vector getRadius() {
+ return getCenter().like().assign(getStd());
+ }
+
}
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/KMeansClusterer.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/KMeansClusterer.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/KMeansClusterer.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/KMeansClusterer.java Sat Jul 10 02:32:38 2010
@@ -118,10 +118,8 @@ public class KMeansClusterer {
boolean converged = false;
int iteration = 0;
while (!converged && iteration < maxIter) {
- //System.out.println("iteration: " + iteration);
List<Cluster> next = new ArrayList<Cluster>();
- List<Cluster> cs = clustersList.get(iteration++);
- for (Cluster c : cs) {
+ for (Cluster c : clustersList.get(iteration++)) {
next.add(new Cluster(c.getCenter()));
}
clustersList.add(next);
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/meanshift/MeanShiftCanopy.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/meanshift/MeanShiftCanopy.java?rev=962745&r1=962744&r2=962745&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/meanshift/MeanShiftCanopy.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/meanshift/MeanShiftCanopy.java Sat Jul 10 02:32:38 2010
@@ -247,5 +247,10 @@ public class MeanShiftCanopy extends Clu
Gson gson = gBuilder.create();
return gson.fromJson(formattedString, MeanShiftCanopy.class);
}
+
+ @Override
+ public Vector getRadius() {
+ return getCenter().like();
+ }
}