Mahout0.9—Hadoop2.20—协同过滤算法

1. Mahout0.9—Hadoop2.20—协同过滤算法

1.1. 基于物品的协同过滤推荐函数

Mahout支持推荐函数,通过mahout –-help 查看:


函数1:itemsimilarity: : Compute the item-item-similarities for item-based collaborative filtering
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


# 1、itemsimilarity 相似矩阵计算,只计算相似矩阵

sudo mahout itemsimilarity -i /testdata/ input /item.txt -o /testdata/ output -s SIMILARITY_COOCCURRENCE --tempDir /testdata/temp


# 2、itemsimilarity 输出相似矩阵,推荐结果
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.csdn.net/sunbow0/article/details/41962125

你可能感兴趣的:(Mahout)