Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Recommender system: simple user-based collaborative filtering to evaluate with precision and recall

I'm looking for a very simple implementation in Java of a user-based collaborative filtering. I would like to evaluate the precision and recall of this CF with the movielens dataset. I've seen that the performance (F1) should be around 20 to 30% (with Pearson similarity, and KNN).

Does this simple framework exist with the evaluation for precision and recall code?

like image 834
Thomas Avatar asked May 11 '11 23:05

Thomas


2 Answers

Apache Mahout does everything you mention here. It is Java-based, and supports user-based collaborative filtering (among others) with GenericUserBasedRecommender. It is a k-nearest-neighbor algorithm, into which you can plug similarity implementations like PearsonCorrelationSimilarity and others.

Look at the org.apache.mahout.cf.taste package and subpackages. In the .impl.eval subpackage find GenericRecommenderIRStatsEvaluator. This will run a test that reports precision, recall and F1.

Finally, there are already some working examples based on GroupLens in mahout-examples.

like image 126
Sean Owen Avatar answered Sep 22 '22 23:09

Sean Owen


Have you tried RapidMiner? If you are interested in just try things like evaluate the precision and recall without concentrate on coding. That's the tool for you. There's good information on the web even paper and youtube videos tutorial like to help you.

like image 43
Medeiros Avatar answered Sep 22 '22 23:09

Medeiros