MovieLens个性化电影推荐系统实战(三):个性化电影推荐(推荐算法)

本文介绍了如何使用MovieLens数据集构建个性化电影推荐系统,包括协同过滤算法(如KNN和SVD)和矩阵分解方法。通过实验对比了不同模型的性能,发现KNNBaseline、BaselineOnly和SVD模型表现较好。文章还讨论了数据分布不均衡对推荐精度的影响,提出后续优化方向和用户反馈的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

        在拥有了上篇文章得出的聚类结果后,本文章将构建推荐系统,为用户个性化推荐电影.

        本系列文章使用MovieLens数据集进行机器学习综合实战。本文主要记录的是用户个性化电影推荐。由于平台有点鸡肋,不能显示运行代码块的结果,大家可以在评论区留言或私信我获取有结果显示的源码。文章和代码均是小编原创,为小编的期末实训项目。仅供大家参考,请勿全篇抄袭本文!!

数据集链接:https://files.grouplens.org/datasets/movielens/ml-1m.zip

文章目录:

MovieLens个性化电影推荐系统实战(一):数据探索(数据预处理、数据可视化)_movielens数据集下载-CSDN博客

MovieLens个性化电影推荐系统实战(二):用户群体划分(聚类)-CSDN博客

资料:

MovieLens个性化电影推荐系统实战——系列文章资料-CSDN博客

文章资源,百度网盘永久有效:

链接: https://pan.baidu.com/s/1P45bvnp6ezE-0J06Wjx2sQ?pwd=csdn 提取码: csdn 复制这段内容后打开百度网盘手机App,操作更方便哦

二、协同过滤算法

        协同过滤(CF)简单来说就是根据已有数据来推测未知的数据的一种算法。在推荐系统中协同过滤算法一般是指在海量用户中发掘一小部分和你品味比较类似的,在协同过滤中,这些用户成为你的邻居,从而基于这些邻居的信息为你推荐商品。基于启发式的协同过滤算法可以分为基于用户的协同过滤算法和基于物品的协同过滤算法。

        协同过滤算法核心步骤:收集用户偏好;找到相似的用户或物品;计算并推荐。

        在协同过滤中,一个重要的环节就是如何选择合适的相似度计算方法,常用的相似度计算方法包括皮尔逊相关系数等。

        另一个重要的环节就是计算用户对未评分商品的预测分值。

三、矩阵分解算法

        矩阵分解算法,同时兼具了协同过滤,隐语义分析和有监督学习的特性,加上矩阵分解的易实现性和高拓展性,成为推荐领域非常经典的算法。

        说到矩阵分解,往往最先想到的是解析几何中奇异值分解(SVD)这一概念。实际上,推荐系统中最初的矩阵分解算法也正是源于此。我们可以对用户-项目矩阵A直接进行矩阵分解。

        然后通过选取用品序列中前k大的奇异值,就可以对原先较大的矩阵A进行压缩。要预测用户对物品的评分时,便可以直接从矩阵A中相对应的元素得到。其中,矩阵A存储用户对物品的评分。

四、用户个性化推荐

1、基于近邻的协同过滤算法

        使用surprise库中的四种基于近邻的模型,分别为KNN基础版(KNNBasic)、KNN均值(KNNWithMeans)、KNN中心化(KNNWithZScore)、KNN基准线(KNNBaseline)。使用网格搜索这四种模型的最佳超参数,然后进行模型的对比。

        四种模型网格搜索的超参数:k为邻域数量;name为相似度计算方法的名称;user_based为基于用户或基于电影进行相似度计算。

        实验结果如下表所示:

近邻的模型实验结果

模型

RMSE1

RMSE2

FCP

MAE

KNNBasic

0.907

0.899

0.602

0.692

KNNWithMeans

0.890

0.884

0.655

0.674

KNNWithZScore

0.893

0.888

0.658

0.670

KNNBaseline

评论 51
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值