Hi,
I'm trying to evaluate the quality of the Boolean recommender. (I have no
ratings in my data but only: (userId,itemId,1) 1 for all entries.
I'm using this setting for the recommender:
UserSimilarity userSimilarity = new
TanimotoCoefficientSimilarity(dataModel);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(10, 0.0,
userSimilarity, dataModel, 1.0);
recommender = new CachingRecommender(new
GenericBooleanPrefUserBasedRecommender(dataModel, neighborhood,
userSimilarity));
As for the evaluator :
RecommenderIRStatsEvaluator evaluator = new
GenericRecommenderIRStatsEvaluator();
IRStatistics stats = evaluator.evaluate(new
GroupLensRecommenderBuilder(), null,model, null, 50, 1.0,0.7);
When running the eval, I keep getting:
09/11/04 13:56:01 INFO eval.
GenericRecommenderIRStatsEvaluator:
processOtherUSer: debug debug --- original id: 9606925 evaluate id: 9606925
09/11/04 13:56:01 INFO model.GenericUserPreferenceArray: debug debug ---
user id is: 0 size is: 0
Exception in thread "main" java.lang.IllegalArgumentException: size is
less than 1
at
org.apache.mahout.cf.taste.impl.model.GenericUserPreferenceArray.<init>(GenericUserPreferenceArray.java:54)
at
org.apache.mahout.cf.taste.impl.model.GenericUserPreferenceArray.<init>(GenericUserPreferenceArray.java:66)
at
org.apache.mahout.cf.taste.impl.eval.GenericRecommenderIRStatsEvaluator.processOtherUser(GenericRecommenderIRStatsEvaluator.java:200)
at
org.apache.mahout.cf.taste.impl.eval.GenericRecommenderIRStatsEvaluator.evaluate(GenericRecommenderIRStatsEvaluator.java:132)
at
org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommenderEvaluatorRunner.main(GroupLensRecommenderEvaluatorRunner.java:68)
However, when I'm trying to access the recommendation of this user :9606925
from the server I'm getting:
User:9606925
Recommender:
GroupLensRecommender[recommender:CachingRecommender[recommender:GenericBooleanPrefUserBasedRecommender]]
Top 20 Preferences:
1.0 552559
1.0 450097
1.0 450098
1.0 450133
1.0 450133
1.0 450133
1.0 450133
1.0 450990
1.0 450990
1.0 457282
1.0 458155
1.0 458155
1.0 458155
1.0 458155
1.0 458155
1.0 458155
1.0 458155
1.0 458155
1.0 458155
1.0 458157
Recommendations:
4.9622216 457294
3.5182436 550267
3.1865802 459571
3.1865802 459823
3.1865802 550995
2.404762 458841
2.404762 450047
2.3295739 550150
2.3295739 459390
2.3295739 550545
2.3295739 551189
2.3295739 551428
2.3295739 551552
1.5438596 551940
Is something wrong with the way I'm using the evaluator? It does evaluate
the precision/recall for some of the users.
Any suggstions?
thanks.
Michal