Author: srowen
Date: Tue May 22 09:09:56 2012
New Revision: 1341364

URL: http://svn.apache.org/viewvc?rev=1341364&view=rev
Log:
Fn measure implementation isn't consistent with convention -- n is beta, not 
beta^2

Modified:
    
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/IRStatisticsImpl.java
    
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluatorImplTest.java

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/IRStatisticsImpl.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/IRStatisticsImpl.java?rev=1341364&r1=1341363&r2=1341364&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/IRStatisticsImpl.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/IRStatisticsImpl.java
 Tue May 22 09:09:56 2012
@@ -65,9 +65,10 @@ public final class IRStatisticsImpl impl
   }
   
   @Override
-  public double getFNMeasure(double n) {
-    double sum = n * precision + recall;
-    return sum == 0.0 ? Double.NaN : (1.0 + n) * precision * recall / sum;
+  public double getFNMeasure(double b) {
+    double b2 = b * b;
+    double sum = b2 * precision + recall;
+    return sum == 0.0 ? Double.NaN : (1.0 + b2) * precision * recall / sum;
   }
 
   @Override

Modified: 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluatorImplTest.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluatorImplTest.java?rev=1341364&r1=1341363&r2=1341364&view=diff
==============================================================================
--- 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluatorImplTest.java
 (original)
+++ 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluatorImplTest.java
 Tue May 22 09:09:56 2012
@@ -44,7 +44,18 @@ public final class GenericRecommenderIRS
     assertEquals(0.75, stats.getPrecision(), EPSILON);
     assertEquals(0.75, stats.getRecall(), EPSILON);
     assertEquals(0.75, stats.getF1Measure(), EPSILON);
+    assertEquals(0.75, stats.getFNMeasure(2.0), EPSILON);
     assertEquals(0.75, stats.getNormalizedDiscountedCumulativeGain(), EPSILON);
   }
 
+  @Test
+  public void testIRStats() {
+    IRStatistics stats = new IRStatisticsImpl(0.3, 0.1, 0.2, 0.05, 0.15);
+    assertEquals(0.3, stats.getPrecision(), EPSILON);
+    assertEquals(0.1, stats.getRecall(), EPSILON);
+    assertEquals(0.15, stats.getF1Measure(), EPSILON);
+    assertEquals(0.11538461538462, stats.getFNMeasure(2.0), EPSILON);
+    assertEquals(0.05, stats.getNormalizedDiscountedCumulativeGain(), EPSILON);
+  }
+
 }
\ No newline at end of file


Reply via email to