mahout学习(1)userCF+itemCF

主要参考文档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个物品:Listrecommendations=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);

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

你可能感兴趣的:(coding,way,mahout,推荐系统)