Author: tdunning
Date: Wed Sep 22 18:19:00 2010
New Revision: 1000119
URL: http://svn.apache.org/viewvc?rev=1000119&view=rev
Log:
Fixed test error. Added ability to set window size for averaging.
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/math/stats/OnlineAuc.java
mahout/trunk/core/src/test/java/org/apache/mahout/math/stats/OnlineAucTest.java
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/math/stats/OnlineAuc.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/math/stats/OnlineAuc.java?rev=1000119&r1=1000118&r2=1000119&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/math/stats/OnlineAuc.java
(original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/math/stats/OnlineAuc.java
Wed Sep 22 18:19:00 2010
@@ -33,7 +33,6 @@ import java.util.Random;
* on-line.
*/
public class OnlineAuc {
-
enum ReplacementPolicy {
FIFO, FAIR, RANDOM
}
@@ -43,6 +42,9 @@ public class OnlineAuc {
// for the FIFO policy
public static final int HISTORY = 10;
+ // defines the exponential averaging window for results
+ private int windowSize=Integer.MAX_VALUE;
+
// FIFO has distinctly the best properties as a policy. See OnlineAucTest
for details
private ReplacementPolicy policy = ReplacementPolicy.FIFO;
private transient Random random =
org.apache.mahout.common.RandomUtils.getRandom();
@@ -102,7 +104,7 @@ public class OnlineAuc {
m += 0.5;
}
}
- averages.set(category, averages.get(category) + (m / count -
averages.get(category)) / samples.get(category));
+ averages.set(category, averages.get(category) + (m / count -
averages.get(category)) / Math.min(windowSize, samples.get(category)));
}
return auc();
}
@@ -115,4 +117,8 @@ public class OnlineAuc {
public void setPolicy(ReplacementPolicy policy) {
this.policy = policy;
}
+
+ public void setWindowSize(int windowSize) {
+ this.windowSize = windowSize;
+ }
}
Modified:
mahout/trunk/core/src/test/java/org/apache/mahout/math/stats/OnlineAucTest.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/math/stats/OnlineAucTest.java?rev=1000119&r1=1000118&r2=1000119&view=diff
==============================================================================
---
mahout/trunk/core/src/test/java/org/apache/mahout/math/stats/OnlineAucTest.java
(original)
+++
mahout/trunk/core/src/test/java/org/apache/mahout/math/stats/OnlineAucTest.java
Wed Sep 22 18:19:00 2010
@@ -81,8 +81,8 @@ public final class OnlineAucTest extends
// FAIR policy isn't so accurate
assertEquals(0.7603, stats[0].getMean(), 0.03);
- assertEquals(0.7603, stats[0].getQuartile(1), 0.025);
- assertEquals(0.7603, stats[0].getQuartile(3), 0.025);
+ assertEquals(0.7603, stats[0].getQuartile(1), 0.03);
+ assertEquals(0.7603, stats[0].getQuartile(3), 0.03);
// FIFO policy seems best
assertEquals(0.7603, stats[1].getMean(), 0.001);