欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用评分和电影类型信息推荐电影(附代码)

最编程 2024-04-04 09:12:43
...

本篇中的推荐算法中电影相似度矩阵的建立除了依据原有的用户-电影评分信息之外,还加入了电影相似度信息弥补矩阵的稀疏性。本文主要的思想参考来源于论文《基于评分偏好和项目属性的协同过滤算法》。具体实验过程如下:

1) 读取电影信息表及电影评分数据

本文使用的MovieLens_100K数据源地址:https://grouplens.org/datasets/movielens/100k/

后续为了验证模型的准确性,需要划分训练数据和测试数据。数据源中已经提供了5种划分方法,这里我们使用第一组训练数据和测试数据。

2) 对用户评分数据进行归一化,修正用户-评分矩阵

因为每个人的评分规则不一样,所以需要对用户-评分数据进行归一化。此次使用的归一化公式为:

 3) 根据电影属性信息,构建物品相似度矩阵

4) 根据修正的用户-评分矩阵,建立物品相似度矩阵

物品相似度计算公式如下(不过这里先暂时不考虑时间权重因子):

  • 先把需要用到的数据拼接到一张DataFrame里

  •  依据用户评分计算电影相似度

5) 仅依据评分偏好信息进行电影推荐

这篇论文的创新点在于加入了电影属性信息来构造相似度矩阵,这一部分不考虑先不考虑电影相似度信息(主要是为了跟后续实验作对比)。这里TOP-N及召回率(Recall)的计算方式参考https://blog.****.net/yeshang_lady/article/details/105493206

最后的总体召回率如下:

6) 依据评分+属性信息进行电影推荐

先依据评分+属性信息构造电影相似度矩阵,然后剩下过程与第5步类似。

 结果发现,加了电影属性之后,召回率反而下降了。论文里面当i=0.05时召回率提升很大。首先,我这里用的召回率计算方法和论文里的召回率计算方法不同。其次,这里只用了一组训练集和测试集。

推荐阅读