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);
}