首页 > 代码库 > mahout之分布式Item-Based使用

mahout之分布式Item-Based使用

一:简介

     基于用户的协同推荐算法随着使用者数量的增多,计算的时间就会变长,所以在2001年Sarwar提出了基于项目的协同过滤推荐算法(Item-based Collaborative Filtering Algorithms)。基于用户的协同推荐mahout没有实现分布式算法,Mahout基于Item的分布式推荐算法的主要内容见org.apache.mahout.cf.taste.hadoop.item.

 

二:准备输入文件

       采用分布式算法,输入文件首先需存放在hdfs上,文件格式(userid,itemid,preference)

 

三:程序代码

     

 1 public static void main(String[] arg) throws Exception { 2         // TODO Auto-generated method stub 3         Configuration conf = new Configuration(); 4         String[] args = { "-i", "/mahout/mahout_input.txt", "-o", 5                 "/mahout/mahout_output", "-n", "3", "-b", "false", 6                 "-s", "SIMILARITY_EUCLIDEAN_DISTANCE", "--maxPrefsPerUser", 7                 "7", "--minPrefsPerUser", "2", "--maxPrefsInItemSimilarity", 8                 "7", "--outputPathForSimilarityMatrix", 9                 "/mahout/similarity", "--tempDir",10                 "/mahout/tmpdir" };11         ToolRunner.run(conf, new RecommenderJob(), args);12     }

 

参数详解:

 

 1  --output 输出路径 2  3 --input   输入路劲 4  5 -n      为每个用户推荐的产品数 6  7 -u      待推荐的用户列表 8  9 -i      待推荐的 item 列表10 11 -f      过滤指定用户不需要推荐的 item 。格式为 userID, itemID 对12 13 -b      输入的样本不带产品评分14 15 -mp    设置每个用户喜好的最大数量 默认 1016 17 -m     设置每个用户喜好的最小数量 默认 118 19 -mo    样本抽样20 21 -s      相似度量方法