Skip to content

fkdwne/mapreduce

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mapreduce

用mapreduce计算框架实现了4个小demo: wordcount、带有词频属性的倒排索引算法、基于物品的推荐算法(itemCF)和基于用户的推荐算法(userCF)

itemCF步骤:

图片加载失败时,显示这段字

step1: 根据用户行为列表构建评分矩阵

map输入:key:LongWritable类型,每一行的起始偏移量 value: Text类型 userID,itemID,score
map输出:key:Text类型 itemID value: Text类型 userID_score
reduce输入:key:Text类型 itemID value: Text类型 <userID1_score, userID2_score, userID2_score, ...>
reduce输出:key:Text类型 itemID value: Text类型 userID1_score,userID2_score,userID3_score

step2: 利用step1得到的评分矩阵,构建物品与物品的相似度矩阵,此处的相似度度量方法采用余弦相似度

此外,评分矩阵还要作为缓存,在setup方法里实现
map输入:key:LongWritable类型,每一行的起始偏移量 value: Text类型 itemID userID1_score,userID2_score,userID3_score
map输出:key:Text类型,itemID value:Text类型 itemID1_sim
reduce输入:key:Text类型,itemID value:Text类型 <itemID1_sim,itemID3_sim,...>
reduce输出:key:Text类型 itemID value: Text类型 itemID1_sim,itemID3_sim,itemID5_sim

step3: 将评分矩阵转置

map输入:key:LongWritable类型,每一行的起始偏移量 value: Text类型 itemID userID1_score,userID2_score,userID3_score
map输出:key:Text类型 userID value: Text类型 itemID_score
reduce输入:key: Text类型 userID value: Text类型 <itemID1_score,itemID3_score,...>
reduce输出:key: Text类型 userID value: Text类型 itemID1_score,itemID3_score,itemID2_score

step4: 物品与物品的相似度矩阵 * 转置后的评分矩阵

此时,转置后的评分矩阵要作为缓存,在setup方法里实现
map输入:key:LongWritable类型,每一行的起始偏移量 Text类型 itemID itemID1_sim,itemID3_sim,itemID5_sim
map输出:key:Text类型 itemID value: Text类型 userID_score
reduce输入:key:Text类型 itemID value: Text类型 <userID1_score, userID2_score,...>
reduce输出:key:Text类型 itemID value: Text类型 userID1_score, userID2_score,userID3_score

step5: 根据评分矩阵,将用户已有过行为的商品忽略

此时,评分矩阵作为缓存,在setup方法里实现
map输入:key:LongWritable类型,每一行的起始偏移量 value: Text类型 itemID userID1_score, userID2_score,userID3_score
map输出:key:Text类型 userID value: Text类型 itemID_score
reduce输入:key:Text类型 userID value: Text类型 <itemID1_score, itemID3_score,...>
reduce输出:key:Text类型 userID value: Text类型 itemID1_score,itemID3_score,itemID5_score

userCF:

和itemCF的逻辑是一样的,区别在于以userID作为行
图片加载失败时,显示这段字

About

用mapreduce计算框架实现了4个小demo: wordcount、带有词频属性的倒排索引算法、基于物品的推荐算法和基于用户的推荐算法

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%