ubuntu下,开发环境的搭建见之前:mahout建立 eclipse工程。
最近准备集中精力学习以下mahout。参考书就是mahout in action。
书中做了一个概念介绍后,就让大家来体验以下recommender。建一个简单的recommender engine
一
创建一个文件。路径:/home/feng/intro.csv
内容如下:
1,101,5.0
1,102,3.0
1,103,2.5
2,101,2.0
2,102,2.5
2,103,5.0
2,104,2.0
3,101,2.5
3,102,4.0
3,105,4.5
3,107,5.0
4,101,5.0
4,103,3.0
4,104,4.5
4,106,4.0
5,101,4.0
5,102,3.0
5,103,2.0
5,104,4.0
5,105,3.5
5,106,4.0
数据的含义第一项是user id,第二项是item id,第三项是两者的喜好系数。
喜好系数1到5,5为最喜欢,1为不喜欢。
二
在mahout的mahout-example下创建java文件。包位置找一个:org.apache.mahout.cf.taste.example。
源代码
package org.apache.mahout.cf.taste.example;
import java.io.File;
import java.util.List;
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 {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
DataModel model = new FileDataModel(new File("/home/feng/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);
}
}
}
三
运行run