Hi,

I have a recommender, with a boolean prefs model. I am following the
instructions in the MIA book, but only get this exception:

Illegal precision: NaN
  [Thrown class java.lang.IllegalArgumentException]

Restarts:
 0: [QUIT] Quit to the SLIME top level

Backtrace:
  0: com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
  1: 
org.apache.mahout.cf.taste.impl.eval.IRStatisticsImpl.<init>(IRStatisticsImpl.java:35)
  2: 
org.apache.mahout.cf.taste.impl.eval.GenericRecommenderIRStatsEvaluator.evaluate(GenericRecommenderIRStatsEvaluator.java:212)

The code is written in Clojure, I hope that's OK:

(let [model (GenericBooleanPrefDataModel.
             (GenericBooleanPrefDataModel/toDataMap
              (FileDataModel. (File. "resources/test.data"))))
      evaluator (GenericRecommenderIRStatsEvaluator.)
      rbuilder (reify RecommenderBuilder
                 (buildRecommender [this model]
                   (let [sim (LogLikelihoodSimilarity. model)
                         nhood (NearestNUserNeighborhood. 10 sim model)]
                     (GenericBooleanPrefUserBasedRecommender. model
nhood sim))))
      mbuilder (reify DataModelBuilder
                 (buildDataModel [this training-data]
                   (GenericBooleanPrefDataModel.
                    (GenericBooleanPrefDataModel/toDataMap training-data))))]
  (.evaluate evaluator rbuilder mbuilder model nil 10
             GenericRecommenderIRStatsEvaluator/CHOOSE_THRESHOLD
             1.0))

My test data file is very simple (for now):

1,1
1,2
1,3

2,1
2,10
2,100
2,20

3,9
3,10
3,20
3,1

4,10
4,15
4,1

Any idea what I might be doing wrong?

Thanks in advance,

- Matt

Reply via email to