协同过滤是一种常用的推荐系统方法,它根据用户或物品之间的相似度,为目标用户推荐他们可能感兴趣的物品。协同过滤有两种主要的类型:基于用户的协同过滤(UBCF)和基于物品的协同过滤(IBCF)
1、User-Based CF(基于用户的协同过滤)
(相关资料图)
UBCF是一种方法,它找到和目标用户兴趣相似的用户集合,并推荐这些相似用户喜欢的、目标用户没有接触过的物品。1例如,如果A和B都喜欢科幻电影和书籍,而A看过并喜欢一部新的科幻电影,那么UBCF就会把这部电影推荐给B
UBCF的核心是计算用户之间的相似度,通常使用皮尔逊相关系数或余弦相似度作为相似度度量。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v)为用户v曾经有过正反馈的物品集合。2那么,皮尔逊相关系数可以定义为:
其中,rui表示用户u对物品i的评分,rˉu表示用户u对所有物品的平均评分。根据用户之间的相似度,可以为目标用户预测他对某个物品的评分。预测公式如下:
其中,r^ui表示预测评分,S(u,K)表示和用户u最相似的K个用户集合,N(i)表示对物品i有过评分的用户集合。
2、Item-Based CF(基于物品的协同过滤)
IBCF是一种方法,它找到和目标用户喜欢的物品相似的物品,并推荐这些相似物品给目标用户。例如,如果A喜欢某系列的书籍和电影,而有一本新的奇幻小说和某系列书籍很相似,那么IBCF就会把这本小说推荐给A。
IBCF的核心是计算物品之间的相似度,通常也使用皮尔逊相关系数或余弦相似度作为相似度度量。给定物品i和物品j,令U(i)表示对物品i有过正反馈的用户集合,令U(j)为对物品j有过正反馈的用户集合。那么,皮尔逊相关系数可以定义为:
其中,rui表示用户u对物品i的评分,rˉi表示物品i的平均评分。根据物品之间的相似度,可以为目标用户预测他对某个物品的评分。预测公式如下:
其中,r^ui表示预测评分,S(i,K)表示和物品i最相似的K个物品集合,N(u)表示用户u有过评分的物品集合。
MovieLens Latest Datasets Small
下载,数据量小,便于我们单机使用和运行
下载地址:/datasets/movielens/
目标:根据m1-latest-sma11/(用户-电影评分数据),分别实现User-Based CF和ltem-BasedCF,并进行电影评分的预测,然后为用户实现电影推荐
加载数据集中的,并转化为用户-电影评分矩阵
计算用户或物品两两相似度
评分预测公式:
1、User-Based CF 算法
2、Item-Based CF 算法
3、预测全部评分
1、基于用户的协同过滤的评分预测(以用户1对所有电影的评分预测为例)
……
2、基于物品的协同过滤的评分预测(以用户1对所有电影的评分预测为例)
……
标签: