Python实现基于内容的协同过滤推荐算法构建电影推荐系统

417 篇文章 111 订阅
订阅专栏
257 篇文章 280 订阅
订阅专栏

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

1.项目背景

基于内容(Content Based,CB)的推荐算法,根据用户过去是一段时间内喜欢的物品,由此推测计算出用户的偏好,为用户推荐相似的物品,“内容就是”用户过去一段时间内喜欢的物品,以及由此计算出的用户偏好。该算法的原理非常简单,向用户推荐喜欢的Item的相似的Item。

本项目使用训练数据得到用户的偏好信息矩阵和物品的特征信息矩阵,然后计算该用户对未进行评分电影偏好程度,选取前N个用户推荐给用户。

本项目应用基于内容的协同过滤推荐算法进行相似度计算、给用户推荐及模型评估。

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

数据详情如下(部分展示):

ratings.dat数据

数据解释:例如 1::1193::5::978300760

该条记录队列的列是 UserID::MovieID::Rating::Timestamp,表示id为1的用户在978300760时对1193电影评分为5。

users.dat数据:

 

movies.dat数据:

数据解释:例如 1::Toy Story (1995)    ::Animation|Children's|Comedy

数据列以::进行间隔,第1列为电影ID,第2列为电影名称,第3列为电影类型,类型之间使用|进行分割。

3.数据预处理

3.1 用Pandas工具查看数据

使用Pandas工具的head()方法查看前五行数据:

 关键代码:

3.2 数据缺失查看

使用Pandas工具的info()方法查看数据信息:

 从上图可以看出每种类型的数据样本数和数据项数,数据没有缺失值。

关键代码:

4.探索性数据分析

4.1 评分变量直方图

用Matplotlib工具的hist()方法绘制直方图:

从上图可以看到,评分平均记录主要集中在3.0~4.5之间。

5.特征工程

5.1 电影特征信息矩阵

关键代码如下: 

部分结果展示: 

从上图可以看出,特征矩阵是一个电影类型的矩阵信息,其中1代表属于这种电影类型,0代表不属于这种电影类型。

5.2 用户特征信息矩阵

关键代码如下: 

电影类型偏好程度,部分结果展示: 

6.构建电影推荐系统

主要使用基于内容的协同过滤推荐算法构建电影推荐系统。

6.1 获取用户喜好程度并对用户进行推荐

对用户1进行推荐,推荐结果如下:

关键代码如下:

7.模型评估

7.1 评估指标及结果

评估指标主要包括准确率。随机选择100个用户进行推荐,计算推荐的准确率:

从上表可以看出,准确率为19%,作为一个推荐系统,在数据量有限的情况下,此效果良好。

关键代码如下:

8.结论与展望

综上所述,本项目采用了基于内容的协同过滤推荐算法来构建电影推荐系统,主要包括数据集的读取、探索性数据分析、特征信息矩阵构建、获取用户对电影类型的喜好程度、对用户进行推荐、模型的评估等,最终证明了我们提出的模型效果较好。 

# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:

# 链接:https://pan.baidu.com/s/13teZEj4juDSuBt-A-kVTWg 
# 提取码:mwpu


# 定义评分数据处理方法
def process_rating_data(self, file='data/ratings.dat'):
    if os.path.exists("data/ratings.csv"):  # 判断是否存在
        print("*******************************ratings.csv已经存在*******************************")
    # 读取数据
    fp = pd.read_table(file, sep='::', engine='python', names=['UserID', 'MovieID', 'Rating', 'Timestamp'])

    print('***************************查看数据前5行********************************')
    print(fp.head())

    print('***************************数据缺失查看********************************')
    print(fp.info())

    record_m = fp.groupby("UserID")["Rating"].mean()
    import matplotlib.pyplot as plt

    # y变量分布直方图
    fig = plt.figure(figsize=(8, 5))  # 设置画布大小
    plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
    plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
    # 绘制直方图  bins:控制直方图中的区间个数 auto为自动填充个数  color:指定柱子的填充色
    plt.hist(record_m, bins='auto', color='g')
    plt.xlabel('Rating')
    plt.ylabel('数量')
    plt.title('Rating变量分布直方图')
    plt.show()
基于内容推荐python_[转载] 基于内容推荐系统(含python代码)-简练
weixin_39709674的博客
01-30 709
from sklearn.feature_extraction.text import CountVectorizerfrom sklearn.feature_extraction.text import TfidfTransformerfrom sklearn.preprocessing import normalizefrom scipy.sparse import csr_matrixite...
毕业设计-基于Python协同过滤算法的旅游景点酒店推荐系统
最新发布
heludoit的博客
07-19 743
基于python的旅游景点酒店推荐系统分为前端用户端和后台管理系统。景点、酒店推荐列表:基于用户的协同过滤算法推荐对应的景点、酒店列表。景点、酒店可视化分析:以地图方式显示热门景点、以柱状图方式显示热门酒店。个人行程与旅游行程:用户可以添加、删除、导出个人行程及旅行行程。管理系统功能包括景点管理、用户管理、酒店管理等。景点管理:增加、搜索、编辑、删除景点信息。用户管理:增加、搜索、编辑、删除用户信息。酒店管理:增加、搜索、编辑、删除酒店信息。
推荐系统(4)-基于内容推荐系统Python
littleyy666的博客
05-07 560
1介绍 基于推荐系统(4)-基于内容推荐系统的学习 基于内容推荐的方法特别适用于文本领域,比如新闻的推荐等等。 核心:首先构造商品画像,之后根据此画像来寻找最相似的其他商品。 基本思想:给用户推荐与其曾经喜爱的物品相似的物品(基于物品自身的属性,而ItemCF是指喜欢物品A的用户一般都喜欢物品B,那么可以给喜欢物品A但是还没有发生用户行为的其他人推荐物品B) 2基于内容推荐系统的算法原理 2.1相似度计算 那又如何计算相似度呢? 答:转换成了向量的形式,计算两个向量之间的相似度。最经典的评估方法就是使用余
基于协同过滤算法的电影推荐系统
06-22
本系统在Myeclipse下可以直接运行,选取了原上传代码中的一个算法进行分析运算。 上传文件中有该系统的相关说明。建议大家去Mahout官网查看详细说明。 先前上传的代码是在ANT下运行http://download.csdn.net/source/3358441 电影推荐系统中运用的推荐算法是基于协同过滤算法(Collaborative Filtering Recommendation)。协同过滤是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。
基于协同过滤电影推荐系统
haosen
08-18 1472
页面展示: 登录注册: 首页: 电影详情页:Toy Story为例。黄色提示条下面是相似电影(使用ItemCF计算相似度的方法得出) 用户的评分记录: 推荐效果:使用UserCF
基于内容的推荐、协同过滤
dianhuo3832的博客
12-10 594
基于内容的推荐 需要分析内容,无需考虑其他用户的行为,例如基于用户喜欢的item的属性/内容进行推荐 通常使用在文本相关产品上进行推荐 使用词袋模型来衡量不同文本的相似度,每个词的权重可以使用频率或者tf-idf表示 相似度计算公式一般使用余弦相似度 协同过滤(CF) 基于用户的协同过滤 找到和用户最近的其他用户,找到其他用户看过或者买过但...
基于文本内容协同过滤推荐算法实现(计算文本内容相似度)
11-12
1、解压下载的CollaborativeFilteringBasedText压缩文件 2、操作系统中需装java jdk1.7或者以上版本 3、点击start.bat,在运行过程中,输出文本之间的距离和相似度
Python期末大作业——采用Neo4j的基于协同过滤电影推荐系统.zip
08-23
Python期末大作业——采用Neo4j的基于协同过滤电影推荐系统》是一个综合性的项目,旨在教授学生如何利用Python编程语言、大数据处理技术以及Neo4j图数据库来构建一个电影推荐系统。该项目不仅包含了完整的源代码,...
python毕业设计-基于协同过滤推荐算法电影推荐系统(源码+数据库+文档).zip
05-26
实时推荐:将推荐系统集成到实际应用中,实时为用户提供个性化的电影推荐。 值得注意的是,基于协同过滤推荐系统存在一些问题,如稀疏性(用户-物品评分矩阵中大部分元素是缺失值)、冷启动问题(对于新
基于python实现,通过协同过滤算法实现的的豆瓣电影推荐系统.zip
05-20
在本项目中,我们主要探讨如何使用Python编程语言和协同过滤算法来构建一个豆瓣电影推荐系统协同过滤是一种广泛应用于个性化推荐系统中的机器学习方法,它主要基于用户的行为历史和物品之间的相似性来预测用户可能...
协同过滤推荐算法-基于用户的协同过滤UserCF及python实现
qq_41275074的博客
07-25 1729
基于用户的协同过滤推荐算法实现
推荐算法python单机实现_python实现基于用户的协同过滤推荐算法和基于项目协同过滤推荐算法 python实现协同过滤推荐算法代码 程序 源代码 思路方法 测评指标MAE、RMSE、Recal...
weixin_42514777的博客
02-12 301
python实现基于用户的协同过滤推荐算法和基于项目协同过滤推荐算法基于用户的协同过滤推荐算法和基于项目协同过滤推荐算法实现原理、公式、思路在前文中已有介绍,本次不再详细描述。本文主要是使用python语言实现推荐算法python语言有很多工具模块便于实现推荐算法,本文没有大量使用已有的机器学习模块,更多的是使用python的基础语法实现,注释详细,代码阅读性好,便于学习。python版本3...
推荐系统过滤技术:基于内容的过滤及其利弊
weixin_30532369的博客
08-13 999
在上一篇文章中,我们介绍了推荐系统的主要工作流程。在接下来的文章中,我们会详细分析推荐系统中的过滤技术。推荐系统中不同的过滤技术推荐系统要想为用户提供切实有用的推荐服务,高效、准确的推荐技术至关重要,也就是说,理解不同推荐过滤技术的特征和潜力至关重要。下图显示了推荐系统中不同的过滤技术: ...
协同过滤算法概述与python 实现协同过滤算法基于内容(usr-item,item-item)
热门推荐
IT届的小学生
04-08 1万+
协调过滤推荐概述   协同过滤(Collaborative Filtering)作为推荐算法中最经典的类型,包括在线的协同和离线的过滤两部分。所谓在线协同,就是通过在线数据找到用户可能喜欢的物品,而离线过滤,则是过滤掉一些不值得推荐的数据,比比如推荐值评分低的数据,或者虽然推荐值高但是用户已经购买的数据。   协同过滤的模型一般为m个物品,m个用户的数据,只有部分用户和部分数据之间是...
python协同过滤算法实现电影推荐
爱酷码的博客
01-17 829
协同过滤是一种常用的推荐算法,它基于用户的历史行为和其他用户的行为进行推荐。在电影推荐中,协同过滤算法可以根据用户对电影的评分来推荐相似的电影给用户。注意:以上代码仅是一个简单的示例,实际应用中还需要考虑更多的因素,如用户的兴趣偏好、电影的类型等。运行以上代码,将会输出Alice用户的电影推荐结果。
[转载] 基于内容推荐系统(含python代码)-简练
一个今天胜过两个明天
08-16 2884
http://www.ryanzhang.info/archives/2594 基于内容推荐系统的核心思想是:推荐给用户 x 那些与 x 给出高评价的物品近似的物品。 具体方法为: 为物品简历“档案” item profiles 根据用户对物品的打分建立用户“档案” user profiles 推荐时,根据用户档案与物品档案之间的相似程度进行推荐 用之前的文档做例子,TF-I...
Python协同过滤推荐算法实现电影推荐系统
"该资源是一个基于Python电影推荐系统,利用协同过滤推荐算法,结合Django框架、JavaScript、Bootstrap和jQuery进行开发,并涉及机器学习技术。系统功能包括影片展示、分类显示、热门排序、收藏排序、时间排序、...
424
原创
3629
点赞
1万+
收藏
3960
粉丝
关注
私信
写文章

热门文章

  • 【项目实战】Python实现支持向量机SVM回归模型(SVR算法)项目实战 52261
  • 网上商城系统MySql数据库设计项目实战 49601
  • Mysql java JDBC驱动jar包 32613
  • 【项目实战】Python实现多元线性回归模型(statsmodels OLS算法)项目实战 27556
  • Oracle中查询表的大小 22846

分类专栏

  • Python数据分析机器学习深度学习:从入门到项目实战 付费 68篇
  • 机器学习 257篇
  • 数据库课程设计项目实战 4篇
  • Django 12篇
  • 其它
  • 数据分析 2篇
  • flask 32篇
  • 云计算 1篇
  • OpenStack 1篇
  • Docker技术入门与企业级实战
  • Docker 24篇
  • python 417篇
  • anaconda 1篇
  • Hadoop 2篇
  • Java 8篇
  • Mysql 1篇
  • Oracle 29篇
  • Linux 6篇
  • PLSQL 11篇
  • SPARK 1篇
  • HASE 1篇
  • Eclipse 2篇
  • AI 2篇
  • 人工智能 3篇
  • Function 2篇
  • DBA 7篇
  • 驱动 1篇
  • JAR 1篇
  • 运维规划 2篇
  • 运维管理 4篇
  • 体系建设 2篇
  • Shell 2篇
  • Windows 1篇
  • Bat 1篇

最新评论

  • 【项目实战】Python实现深度神经网络gcForest(多粒度级联森林)分类模型(医学诊断)

    Liuxium: 百度网盘提取码显示错误

  • 【项目实战】Python实现深度神经网络gcForest(多粒度级联森林)分类模型(医学诊断)

    Liuxium: 提取码错误

  • 【机器学习】医学图像处理:ABIDE数据集下载

    咖喱galon: 不是MRI图像数据吗?nii那种,这种.1D数据怎么看图像呢?

  • 基于MYSQL的论坛管理系统数据库设计项目实战

    2401_87768502: 外键怎么创建啊

  • 【项目实战】Python实现支持向量机SVM回归模型(SVR算法)项目实战

    weixin_48314067: 你好,请问这个项目的代码数据可以 给吗

最新文章

  • Python实现AR协方差结构线性回归模型(GLSAR算法)项目实战
  • Python实现广义最小二乘法线性回归模型(GLS算法)项目实战
  • Python实现广义线性回归模型(statsmodels GLM算法)项目实战
2023年233篇
2022年84篇
2021年20篇
2020年160篇
2019年66篇
2018年7篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张陈亚

您的鼓励,将是我最大的坚持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳坪山网站建设公司鹤壁网站快照优化搜索引擎优化网站外链石排网站关键词优化费用网站推广优化是用金手指专业许昌seo网站优化工具网站排名优化网址纸制品网站优化价格旅游网站搜索引擎优化的结论合肥网站推广优化外包番禺网站收录优化桃源网络营销网站优化大型网站的优化方法嘉兴网站seo优化服务安新县网站优化排名成都知名的网站推广优化网站优化为什么没效果福建广电网站优化产品介绍北京测试网站优化质量保障凌海网站优化快照贵阳网站优化策略想自学网站优化 看什么书网站内部结构优化庐山网站关键词优化网站优化的核心要素网站优化推广电话邢台网站优化哪家专业嘉兴优化的网站优化网站排名就刃云速 捷企业网站关键字优化长安的网站优化关键词推广香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化