Mahout-用户推荐

时间:2014-11-20 10:17:15

标签: java recommendation-engine mahout-recommender

我正试图找到一种方法,使用apache Mahout来推荐类似的用户而不是Items。 我有一个用户列表,每个用户都阅读了某些书籍。我想询问是否有办法根据他阅读的内容向另一个用户推荐一组用户 您可以理解,推荐的用户会阅读一些相同的书籍 感谢您的帮助和指导。

2 个答案:

答案 0 :(得分:1)

在Mahout v1中使用spark-rowsimilarity作业。创建

文件
user-ID<tab>book-ID1<space>book-ID2<space>etc...

换句话说,每一行都是用户阅读的书籍历史。第一列是用户ID,第二列是空格分隔的book-ID列表。运行“mahout spark-rowsimilarity”,您将获得以下格式的文件:

user-ID<tab>user-ID5:strength<space>user-ID6:strength<space>etc...

这是每个用户的类似用户列表。对列表进行排序,强度是用户相似程度的LLR(对数似然比)得分。

文档:http://mahout.apache.org/users/recommender/intro-cooccurrence-spark.html

答案 1 :(得分:1)

在Java中你可以这样做:

org.apache.mahout.cf.taste.model.DataModel dataModel;
...
UserSimilarity similarity = new PearsonCorrelationSimilarity(dataModel);
UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.75, similarity, dataModel);
UserBasedRecommender userBasedRecommender = new GenericUserBasedRecommender(dataModel, neighborhood, similarity);
long[] mostSimilarUserIDs = userBasedRecommender.mostSimilarUserIDs(...);