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