1. Mahout0.9—Hadoop2.20—协同过滤算法
1.1. 基于物品的协同过滤推荐函数
Mahout支持推荐函数,通过mahout –-help 查看:
itemsimilarity是计算物品相似度矩阵;如果只需要相似矩阵,可用此函数。
函数2:recommenditembased: : Compute recommendations using item-based collaborative filtering
recommenditembased是计算物品相似度矩阵,并根据相似矩阵和用户数据进行推荐结果计算;recommenditembased的计算过程包括itemsimilarity;
1) itemsimilarity参数
通过mahout itemsimilarity –-help 查看:
--input (-i) input, 设置数据输入路径
--output (-o) output ,设置结果输出路径
--similarityClassname (-s) ,设置相似度计算函数:
SIMILARITY_COOCCURRENCE,同现相似度
SIMILARITY_LOGLIKELIHOOD, 对数似然相似度
SIMILARITY_TANIMOTO_COEFFICIENT
SIMILARITY_CITY_BLOCK, 曼哈顿距离相似度
SIMILARITY_COSINE, 余弦相似度
SIMILARITY_PEARSON_CORRELATION,皮尔森相似度
SIMILARITY_EUCLIDEAN_DISTANCE, 欧氏距离相似度
具体函数定义参照:http://blog.fens.me/mahout-recommend-engine/
--maxSimilaritiesPerItem (-m), 物品最大相似物品数量,默认是100;
--maxPrefs (-mppu) ,最大评分,默认是: 500
--minPrefsPerUser (-mp) ,最小评分,默认是1
--booleanData , false评分 true 0、1
--threshold (-tr) ,相似度过滤
--randomSeed ,抽样
--tempDir tempDir ,临时目录
2) recommenditembased参数
通过mahout recommenditembased–-help 查看:
--input (-i) input, 设置数据输入路径
--output (-o) output ,设置结果输出路径
--similarityClassname (-s) ,设置相似度计算函数
--numRecommendations (-n) ,每个用户推荐数量,默认10
--usersFile,计算用户推荐结果的用户数据
-- itemsFile,推荐结果只包含该物品列表;
--maxSimilaritiesPerItem (-m), 物品最大相似物品数量,默认是100;
--maxPrefs (-mppu) ,最大评分,默认是: 500
--minPrefsPerUser (-mp) ,最小评分,默认是1
--booleanData , false评分 true 0、1
--threshold (-tr) ,相似度过滤
--filterFile (-f) ,过滤用户推荐物品
--randomSeed ,抽样
--tempDir tempDir ,临时目录
1.2. 基于物品的协同过滤推荐
#上传数据sudo hadoop fs -put ./item.txt /testdata/ input
sudo hadoop fs -put ./user.txt /testdata/ output
sudo mahout itemsimilarity -i /testdata/ input /item.txt -o /testdata/ output -s SIMILARITY_COOCCURRENCE --tempDir /testdata/temp
sudo mahout recommenditembased -i /testdata/ input /item.txt -o /testdata/ output --usersFile /testdata/userfile/user.txt -s SIMILARITY_COOCCURRENCE -n 20 --tempDir /testdata/temp
转载请注明出处:
http://blog.youkuaiyun.com/sunbow0/article/details/41962125