协同过滤算法学习笔记

(通过观看慕课网Hadoop进阶总结出来的笔记:http://www.imooc.com/learn/890

一. 余弦相似度



其他的相似度种类

1.切比雪夫距离   2.欧式距离   3.皮尔森系数   4.曼哈顿距离    5.杰卡德距离

二. 基于物品的协同过滤算法ItemCF

算法思想:给用户推荐那些和他们之前喜欢的物品相似的物品

1.用户行为与权重

例子:

用户:A,B,C

商品:1,2,3,4,5,6

行为:点击1分,搜索3分,收藏5分,付款10分

构建用户行为列表:

用户      物品        行为

A           1            点击

C            3            收藏

B            2            搜索

B            5            搜索

B            6            收藏

A            2            付款

C            3            付款

C            4            收藏

C            1            收藏

A            1            点击

A            6            收藏

A            4            搜索

每一行表示,某个用户对某个商品产生过一次行为。

2.算法实现步骤

step1:根据用户行为列表计算用户,物品的评分矩阵

   

step2:计算物品与物品的相似度矩阵

比如:


构造成两个向量:(2,0,5)与(10,3,0)


所以物品1与物品2的相似度为0.36,其他同理,最终得出物品与物品的相似度矩阵


step3:相似度矩阵*评分矩阵=推荐列表

(注意:因为矩阵的相乘区分左右,所以相似度矩阵与评分矩阵的顺序不能变


最终将推荐矩阵与评分矩阵相比较,将用户看过的电影置为0。


最终选取值最大的推荐给用户

A-5      B-4      C-2

三. 基于用户的协同过滤算法UserCF

算法思想:给用户推荐和他兴趣相似的其他用户喜欢的物品

例子:数据样本与基于物品的一样

算法实现步骤

step1:根据用户行为列表计算用户,物品的评分矩阵


基于物品的CF与基于用户的CF的区别是:

基于物品的CF的行号是物品,列号是用户

基于用户的CF的行号是用户,列号是物品

step2:计算用户与用户的相似度矩阵


step3:相似度矩阵*评分矩阵=推荐列表



将用户产生过行为的物品的分值置0,得出最终的推荐列表


四. 基于内容的协同过滤算

算法思想:给用户推荐和他之前喜欢的物品在内容上相似的其他物品。

对物品进行特征建模Item Profile


1表示电影具有某特征,0表示电影不具有某特征

算法实现步骤

step1:构建Item Profile矩阵


step2:构建Item User评分矩阵


step3:Item User*Item Profile=User Profile



最后得出的矩阵表示用户对某种标签的感兴趣程度。

可以看出U1用户对特征(4)和(7)最感兴趣,其权重均为6。

step4:对Item Profile和User Profile求余弦相似度










猜你喜欢

转载自blog.csdn.net/wydyd110/article/details/79957986