欢迎光临散文网 会员登陆 & 注册

推荐系统——电影评分预测算法(基于用户的协同过滤、基于物品的协同过滤)

2023-08-19 22:45 作者:thisishui  | 我要投稿

一、协同过滤算法原理

协同过滤是一种常用的推荐系统方法,它根据用户或物品之间的相似度,为目标用户推荐他们可能感兴趣的物品。协同过滤有两种主要的类型:基于用户的协同过滤(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

下载ml-latest-small.zip,数据量小,便于我们单机使用和运行

下载地址:https://files.grouplens.org/datasets/movielens/ml-latest-small.zip

目标:根据m1-latest-sma11/ratings.csv(用户-电影评分数据),分别实现User-Based CF和ltem-BasedCF,并进行电影评分的预测,然后为用户实现电影推荐

三、数据集加载

加载数据集中的rating.csv,并转化为用户-电影评分矩阵

四、相似度计算

计算用户或物品两两相似度

五、User-Based CF 和Item-Based CF预测评分(基于用户的协同过滤和基于物品的协同过滤)

评分预测公式:

1、User-Based CF 算法


2、Item-Based CF 算法


3、预测全部评分

六、电影评分预测

1、基于用户的协同过滤的评分预测(以用户1对所有电影的评分预测为例)

……

2、基于物品的协同过滤的评分预测(以用户1对所有电影的评分预测为例)

……


推荐系统——电影评分预测算法(基于用户的协同过滤、基于物品的协同过滤)的评论 (共 条)

分享到微博请遵守国家法律