您的位置:首页 > 运维架构

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

2014-12-16 16:27 267 查看

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

转载请注明出处:

/article/1477386.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: