Python实现基于物品的协同过滤推荐算法构建电影推荐系统
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。
1.项目背景
基于物品的协同过滤推荐(Item-based CF)的假设原理为:跟你喜欢的东西相似的东西你也很有可能喜欢。基于物品的协同过滤推荐并不通过对item的评分来评测item之间的相关性,而是基于item的相似性做推荐,其核心就是:给用户推荐他之前喜欢的物品的相似物品。
首先使用训练数据得到用户的偏好信息矩阵和物品的特征信息矩阵,然后计算用户对未进行评分电影的偏好分,最后选取前K个推荐给用户
本项目应用物品的协同过滤推荐算法进行相似度计算、给用户推荐及模型评估。
2.数据获取
本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:
数据详情如下(部分展示):
数据解释:例如 1::1193::5::978300760
该条记录队列的列是 UserID::MovieID::Rating::Timestamp,表示id为1的用户在978300760时对1193电影评分为5。
3.数据预处理
3.1 用Pandas工具查看数据
使用Pandas工具的head()方法查看前五行数据:
关键代码:
3.2 数据缺失查看
使用Pandas工具的info()方法查看数据信息:
从上图可以看到,总共有3个变量,数据中无缺失值,共1000209条数据。
关键代码:
4.探索性数据分析
4.1 评分变量直方图
用Matplotlib工具的hist()方法绘制直方图:
从上图可以看到,评分平均记录主要集中在3.0~4.5之间。
5.特征工程
5.1 数据集拆分
通过splitData()方法进行数据集拆分,关键代码如下:
6.构建电影推荐系统
主要使用基于物品的协同过滤推荐算法构建电影推荐系统。
6.1 相似度计算
关键代码:
相似度计算结果展示:
6.2 对用户进行推荐
对用户1进行推荐,推荐结果如下:
通过上表可以看出,是按照推荐值的大小从高到低进行排序的。
7.模型评估
7.1 评估指标及结果
评估指标主要包括准确率。
从上表可以看出,准确率为19%,作为一个推荐系统,在数据量有限的情况下,此效果良好。
关键代码如下:
8.结论与展望
综上所述,本项目采用了基于物品的协同过滤推荐算法来构建电影推荐系统,主要包括数据集的读取、拆分、探索性数据分析、物品相似度计算、对用户进行推荐、模型的评估等,最终证明了我们提出的模型效果较好。
本次机器学习项目实战所需的资料,项目资源如下:
项目说明:
链接:https://pan.baidu.com/s/1dW3S1a6KGdUHK90W-lmA4w
提取码:bcbp
Python实现基于物品的协同过滤推荐算法构建电影推荐系统相关推荐
- Python实现基于用户的协同过滤推荐算法构建电影推荐系统
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 基于用户的协同过滤推荐(User-based CF)的原理假设: ...
- 基于Mahout实现协同过滤推荐算法的电影推荐系统
1 Mahout介绍 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更 ...
- 基于物品的协同过滤推荐算法_《推荐系统实践》3.基于物品的协同过滤算法
基于物品的协同过滤算法(item-based collaborative filtering,以下简称ItemCF)算法思想:给用户推荐那些和他们之前喜欢的物品相似的物品. 不过,ItemCF算法并不 ...
- 基于机器学习实现协同过滤推荐算法的电影推荐系统
推荐算法在互联网行业的应用非常广泛,今日头条.美团点评等都有个性化推荐,推荐算法抽象来讲,是一种对于内容满意度的拟合函数,涉及到用户特征和内容特征,作为模型训练所需维度的两大来源,而点击率,页面停留时 ...
- 在线新闻推荐网 Python+Django+Mysql开发技术 基于用户、物品的协同过滤推荐算法 个性化新闻推荐系统 协同过滤推荐算法在新闻网站中的运用 个性化推荐算法、机器学习、分布式大数据、人工智
在线新闻推荐网 Python+Django+Mysql开发技术 基于用户.物品的协同过滤推荐算法 个性化新闻推荐系统 协同过滤推荐算法在新闻网站中的运用 个性化推荐算法.机器学习.分布式大数据.人工智 ...
- 在线音乐推荐网 Python+Django+Mysql开发技术 基于用户、物品的协同过滤推荐算法 个性化音乐推荐系统 音乐网站+协同过滤推荐算法 机器学习、分布式大数据、人工智能开发
在线音乐推荐网 Python+Django+Mysql开发技术 基于用户.物品的协同过滤推荐算法 个性化音乐推荐系统 音乐网站+协同过滤推荐算法 机器学习.分布式大数据.人工智能开发 MusicRec ...
- 【知识发现】基于物品的协同过滤推荐算法python实现
基于物品的协同过滤算法(Item-Based Collaborative Filtering)是目前业界应用最多的算法,亚马逊.Netflix.Hulu.YouTube都采用该算法作为其基础推荐算法. ...
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
最近参加KDD Cup 2012比赛,选了track1,做微博推荐的,找了推荐相关的论文学习."Item-Based Collaborative Filtering Recommendati ...
- 基于物品 的协同过滤推荐算法(ItemCF)
首先给用户行为定义相应的权重积分 算法思路:给用户推荐那些和他们之前喜欢的物品相似的物品 实例如下: 算法步骤: 用户对于商品的权重分数,为用户对商品操作的分数相加. 余弦相似度计算计算逻辑,以物品1 ...
最新文章
- 深入理解Aho-Corasick自动机算法
- 转:WF中的跟踪服务(1):Sql跟踪数据库表,视图,存储过程等相关说明
- Vue+Openlayers实现显示图片并分优先级多图层加载
- python中的正则表达式是干嘛的_操作python中的正则表达式(上)
- 从percona server 5.7换到mariadb 10.2
- 如何批量查询PR值、百度权重、百度快照及收录量,用BlueCatTools批量网站查询工具
- PTA—念数字(C语言)两种方法
- Can‘t we be more objective?:Is huawei better than iphone?
- 【codecombat】 试玩全攻略 第十六关 近战
- poj 3660 Cow Contest floyd 传递闭包!!基础
- JAVA中方法和变量在继承中的覆盖和隐藏
- 解决adobe reader卸载不干净的问题
- 小程序 | 微信小程序布局左对齐自动换行
- java ts文件 播放_前端如何播放m3u8格式的视频
- git分支的拉取和获取master分支最新代码
- 链游和元宇宙大热,互联网游戏从业者们如何看待它们? |链捕手
- 肠道微生物群在冠心病中的作用
- 短信在用户运营、召回流失用户中的重要作用
- 猿创征文|pandas实现将矩阵导出到excel+对矩阵进行连接
- 从源头解决问题,而不是曲线救国
热门文章
- 2020第二篇TED:The case for student health days
- Word模板文件,替换内容 文本、图片、表格、列表、区块、嵌套等
- python绘制社会关系网络图_python networkx 包绘制复杂网络关系图的实现
- 安卓开发使用ttf文字_打破限制,自定义MIUI12相册文字水印字体
- htc x920e刷android7.0,HTC X920E刷boot文件的教程
- android imageview图片失真,imageView 图片变形失真
- CS229part3广义线性模型
- linux zend studio 10,Zend Studio 10发布,可编写mobile apps
- 企业为什么要申报高新技术企业
- python3调用企业微信api!开发一款属于自己的企业微信