Author: jeastman
Date: Wed Sep 29 16:47:02 2010
New Revision: 1002731

URL: http://svn.apache.org/viewvc?rev=1002731&view=rev
Log:
MAHOUT-513: hopefully fixed weighting of vectors by adding weightedX

Modified:
    
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/OnlineGaussianAccumulator.java

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/OnlineGaussianAccumulator.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/OnlineGaussianAccumulator.java?rev=1002731&r1=1002730&r2=1002731&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/OnlineGaussianAccumulator.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/clustering/OnlineGaussianAccumulator.java
 Wed Sep 29 16:47:02 2010
@@ -33,64 +33,43 @@ public class OnlineGaussianAccumulator i
 
   private Vector variance;
 
-  /* (non-Javadoc)
-   * @see org.apache.mahout.clustering.OnlineGaussianAccumulator#getN()
-   */
-  /* (non-Javadoc)
-   * @see org.apache.mahout.clustering.GaussianAccumulator#getN()
-   */
+  @Override
   public double getN() {
     return n;
   }
 
-  /* (non-Javadoc)
-   * @see org.apache.mahout.clustering.OnlineGaussianAccumulator#getMean()
-   */
-  /* (non-Javadoc)
-   * @see org.apache.mahout.clustering.GaussianAccumulator#getMean()
-   */
+  @Override
   public Vector getMean() {
     return mean;
   }
 
-  /* (non-Javadoc)
-   * @see org.apache.mahout.clustering.OnlineGaussianAccumulator#getVariance()
-   */
-  /* (non-Javadoc)
-   * @see org.apache.mahout.clustering.GaussianAccumulator#getStd()
-   */
+  @Override
   public Vector getStd() {
     return variance.assign(new SquareRootFunction());
   }
 
-  /* (non-Javadoc)
-   * @see 
org.apache.mahout.clustering.OnlineGaussianAccumulator#observe(org.apache.mahout.math.Vector,
 double)
-   */
-  /* (non-Javadoc)
-   * @see 
org.apache.mahout.clustering.GaussianAccumulator#observe(org.apache.mahout.math.Vector,
 double)
-   */
+  @Override
   public void observe(Vector x, double weight) {
-    n = n + weight;
+    n += weight;
+    Vector weightedX = x.times(weight);
     Vector delta;
     if (mean != null) {
-      delta = x.minus(mean);
+      delta = weightedX.minus(mean);
     } else {
       mean = x.like();
-      delta = x.clone();
+      delta = weightedX.clone();
     }
     mean = mean.plus(delta.divide(n));
 
     if (M2 != null) {
-      M2 = M2.plus(delta.times(x.minus(mean)));
+      M2 = M2.plus(delta.times(weightedX.minus(mean)));
     } else {
-      M2 = delta.times(x.minus(mean));
+      M2 = delta.times(weightedX.minus(mean));
     }
     variance = M2.divide(n - 1);
   }
 
-  /* (non-Javadoc)
-   * @see org.apache.mahout.clustering.GaussianAccumulator#compute()
-   */
+  @Override
   public void compute() {
     // nothing to do here!
   }


Reply via email to