mahout0.11 taste框架推荐引擎api
所需jar包
数据格式以逗号分隔
1,101,5.01,102,3.01,103,2.52,101,2.02,102,2.52,103,5.02,104,2.03,101,2.03,104,4.03,105,4.53,107,5.04,101,5.04,103,3.04,104,4.54,106,4.05,101,4.05,102,3.05,103,2.05,104,4.05,105,3.55,106,4.06,102,4.06,103,2.06,105,3.56,107,4.0
基于用户推荐
importjava.io.File;importjava.util.List;importorg.apache.mahout.cf.taste.impl.model.file.FileDataModel;importorg.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;importorg.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;importorg.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;importorg.apache.mahout.cf.taste.model.DataModel;importorg.apache.mahout.cf.taste.neighborhood.UserNeighborhood;importorg.apache.mahout.cf.taste.recommender.RecommendedItem;importorg.apache.mahout.cf.taste.recommender.Recommender;importorg.apache.mahout.cf.taste.similarity.UserSimilarity;publicclassUserItemRecommend{publicstaticvoidmain(String[]args)throwsException{//创建数据模型DataModeldm=newFileDataModel(newFile("C:/test.txt"));//使用user来推荐,计算相似度UserSimilarityus=newPearsonCorrelationSimilarity(dm);//查找K(3)近邻UserNeighborhoodunb=newNearestNUserNeighborhood(3,us,dm);//构造推荐引擎Recommenderre=newGenericUserBasedRecommender(dm,unb,us);//显示推荐结果,为1号用户推荐两个商品List<RecommendedItem>list=re.recommend(1,2);for(RecommendedItemrecommendedItem:list){System.out.println(recommendedItem);}}}
推荐结果
RecommendedItem[item:104,value:4.257081]RecommendedItem[item:106,value:4.0]
基于商品
importjava.io.File;importjava.util.List;importorg.apache.mahout.cf.taste.impl.model.file.FileDataModel;importorg.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender;importorg.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;importorg.apache.mahout.cf.taste.model.DataModel;importorg.apache.mahout.cf.taste.recommender.RecommendedItem;importorg.apache.mahout.cf.taste.recommender.Recommender;importorg.apache.mahout.cf.taste.similarity.ItemSimilarity;publicclassItemUserRecommend{publicstaticvoidmain(String[]args)throwsException{//创建数据模型DataModeldm=newFileDataModel(newFile("C:/test.txt"));ItemSimilarityis=newPearsonCorrelationSimilarity(dm);//构造推荐引擎Recommenderre=newGenericItemBasedRecommender(dm,is);//显示推荐结果,为1号用户推荐两个商品List<RecommendedItem>list=re.recommend(1,2);for(RecommendedItemrecommendedItem:list){System.out.println(recommendedItem);}}}
slopeone算法,0.9版本已移除,要使用只能用0.8
importjava.io.File;importjava.util.List;importorg.apache.mahout.cf.taste.impl.model.file.FileDataModel;importorg.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender;importorg.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;importorg.apache.mahout.cf.taste.model.DataModel;importorg.apache.mahout.cf.taste.recommender.RecommendedItem;importorg.apache.mahout.cf.taste.recommender.Recommender;importorg.apache.mahout.cf.taste.similarity.ItemSimilarity;publicclassSlopeOneRecommend{publicstaticvoidmain(String[]args)throwsException{//创建数据模型DataModeldm=newFileDataModel(newFile("C:/test.txt"));//构造推荐引擎Recommenderre=newSlopeOneRecommender(dm);;//显示推荐结果,为1号用户推荐两个商品List<RecommendedItem>list=re.recommend(1,2);for(RecommendedItemrecommendedItem:list){System.out.println(recommendedItem);}}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。