Author: tdunning
Date: Wed Sep  8 18:49:57 2010
New Revision: 995188

URL: http://svn.apache.org/viewvc?rev=995188&view=rev
Log:
Limit how bad logLikelihood things things are to avoid numerical issues
Only update auc in binary case.

Modified:
    
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/CrossFoldLearner.java

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/CrossFoldLearner.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/CrossFoldLearner.java?rev=995188&r1=995187&r2=995188&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/CrossFoldLearner.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/CrossFoldLearner.java
 Wed Sep  8 18:49:57 2010
@@ -96,9 +96,11 @@ public class CrossFoldLearner extends Ab
     for (OnlineLogisticRegression model : models) {
       if (k == trackingKey % models.size()) {
         Vector v = model.classifyFull(instance);
-        double score = v.get(actual);
+        double score = Math.max(v.get(actual), MIN_SCORE);
         logLikelihood += (Math.log(score) - logLikelihood) / record;
-        auc.addSample(actual, v.get(1));
+        if (numCategories() == 2) {
+          auc.addSample(actual, v.get(1));
+        }
       } else {
         model.train(trackingKey, actual, instance);
       }


Reply via email to