Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

mahout学习(1)userCF+itemCF

$
0
0

主要参考文档mahout-in-action中的第二章

【推荐】

对于userCF,要先获取评分数据 存于DataModel中,定义用户间相似度的计算方法Similarity,可利用一定方法如KNN来求相似用户Neighborhood,根据相似用户喜欢的物品向用户推荐物品,保存于Recommender中。

DataModel model=new FileDataModel(new File("intro.csv"));
		UserSimilarity similarity=new PearsonCorrelationSimilarity(model);
		UserNeighborhood neighborhood=new NearestNUserNeighborhood(2,similarity,model);//knn n=2
		Recommender recommender=new GenericUserBasedRecommender(model,neighborhood,similarity);
向指定用户i推荐k个物品:List<RecommendedItem>recommendations=recommender.recommend(i, k);

对于itemCF,只需确定DataModel及Similarity,根据相似物品向用户推荐。。

DataModel model=new FileDataModel(new File("intro.csv"));
		ItemSimilarity similarity=new PearsonCorrelationSimilarity(model);
		Recommender recommender=new GenericItemBasedRecommender(model,similarity);

【评估结果】即计算所推荐的结果与理想的结果之间的偏差,但是由于不存在理想结果,不大可能预知理想结果,所以可以利用随机概率将数据集分为测试集和样本集,测试集通过推荐后的结果与样本集相对比,当然得到的结果是对某物品的评分,所以可通过计算平均差或方差来评估结果的误差。。。。

作者:YYlxid 发表于2013-11-27 0:19:03 原文链接
阅读:115 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>