首页 > 代码库 > 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 相似度量方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。