[mahout in action] 调通第一个例子

来源:互联网 发布:淘宝差评怎么办 编辑:程序博客网 时间:2024/06/05 07:45

第一个例子是给出了5个用户对物品的评分,基于用户的协同过滤,采用Pearson相似度来找到最相近的用户,并提供推荐。

import java.io.File;import java.io.IOException;import java.util.List;import org.apache.mahout.cf.taste.common.TasteException;import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;import org.apache.mahout.cf.taste.model.DataModel;import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;import org.apache.mahout.cf.taste.recommender.RecommendedItem;import org.apache.mahout.cf.taste.recommender.Recommender;import org.apache.mahout.cf.taste.similarity.UserSimilarity;public class RecommenderIntro {public static void main(String[] args) throws IOException, TasteException {DataModel model = new FileDataModel(new File("./data/intro.csv"));UserSimilarity similarity = new PearsonCorrelationSimilarity(model);UserNeighborhood neighborhood = new NearestNUserNeighborhood(2,similarity, model);Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);List<RecommendedItem> recommendations = recommender.recommend(1, 1);for (RecommendedItem recommendation : recommendations) {System.out.println(recommendation);}}}

程序输出

14/09/25 19:47:01 INFO file.FileDataModel: Creating FileDataModel for file .\data\intro.csv14/09/25 19:47:01 INFO file.FileDataModel: Reading file info...14/09/25 19:47:01 INFO file.FileDataModel: Read lines: 2114/09/25 19:47:01 INFO model.GenericDataModel: Processed 5 usersRecommendedItem[item:104, value:4.257081]


0 0