Author: srowen
Date: Fri Oct 26 15:52:02 2012
New Revision: 1402554

URL: http://svn.apache.org/viewvc?rev=1402554&view=rev
Log:
nDCG formula is ever so slightly non-standard -- fix it to match canonical 
formula in literature

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

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluator.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluator.java?rev=1402554&r1=1402553&r2=1402554&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluator.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluator.java
 Fri Oct 26 15:52:02 2012
@@ -179,7 +179,7 @@ public final class GenericRecommenderIRS
       double idealizedGain = 0.0;
       for (int i = 0; i < recommendedItems.size(); i++) {
         RecommendedItem item = recommendedItems.get(i);
-        double discount = i == 0 ? 1.0 : 1.0 / log2(i + 1);
+        double discount = 1.0 / log2(i + 2.0); // Classical formulation says 
log(i+1), but i is 0-based here
         if (relevantItemIDs.contains(item.getItemID())) {
           cumulativeGain += discount;
         }


Reply via email to