基于 Python 和Surprise库,新手轻松搭建推荐系统

解密基于用户的推荐系统。

1、简介

在数据时代,推荐系统是提升用户体验的重要工具。今天介绍如何使用亚马逊的电影评分数据集创建电影推荐系统。

2、数据加载与探索

首先,通过加载和探索数据集开启数据分析过程。首先导入Pandas和Numpy,这是进行数据处理的基础库。通过检查数据集的前几行、形状、大小和统计摘要进行探索。.head()方法可以让我们一窥数据集的全貌,而.shape方法则展示了数据集的大小。

import pandas as pd
import numpy as np 
amazon = pd. read_csv (" path_to / Amazon . csv")
print ( amazon . head ()
print (" Dataset ␣ shape :", amazon . shape )

3、数据清洗和预处理

为了确保分析的完整性,必须替换缺失值并完善DataFrame。fillna方法可用于处理缺失值,这对于保持数据完整性至关重要。删除不相关的列(如'user_id')可以使分析集中在电影评分上。

Amazon_filtered = amazon . fillna ( value =0)
Amazon_filtered1 = Amazon_filtered . drop ( columns =’user_id ’)

4、深入分析浏览量和评分

通过分析浏览量,分析电影的受欢迎程度,这涉及对评分进行求和并找到最大值。按电影对评分进行求和可以得到一个受欢迎度指标。argmax()函数可以识别出观看次数最多的电影。

Amazon_max_views = Amazon_filtered1 .sum ()
max_views_index = Amazon_max_views . argmax ()
print (" Most_viewed _movie _index :", max_views_index )

5、计算平均评分

通过计算电影的平均评分,可以了解观众的总体满意度。

average_ratings = Amazon_max_views . mean ()
print (" Average_rating :", average_ratings )

6、建立推荐模型:SVD算法

  1. 格式化数据供Surprise使用: 通过准备数据以供Surprise库使用来为推荐做好准备。
from surprise import Reader , Dataset
reader = Reader ( rating_scale =(-1, 10))
data = Dataset . load_from_df ( melt_df . fillna (0) , reader )
  1. 模型训练与评估: 该系统的开发目的是根据用户的偏好来推荐电影,推荐系统的首选工具Surprise库。
from surprise import SVD
from surprise.model_selection import train_test_split ,
cross_validate
trainset , testset = train_test_split (data , test_size =0.25)
algo = SVD ()
algo . fit( trainset )
predictions = algo . test ( testset )
cross_validate (algo , data , measures =[ ’RMSE ’, ’MAE ’], cv =3,
verbose = True )
  1. 进行预测: 现在,使用SVD算法进行预测,该算法是进行矩阵因式分解的强大工具,用于预测用户对电影的评分。
user_id = ’ A1CV1WROP5KTTW ’
movie = ’Movie6 ’
rating = 5
algo . predict ( user_id , movie , r_ui = rating )

结果如下所示:

图片

7、结论(模型应用)

这个脚本不仅揭示了亚马逊电影评分数据的复杂性,还提供了一个多功能的分析工具包。这里的方法也可以适用于各种数据场景。例如,在教育领域,类似的推荐系统可以推荐个性化的学习材料、课程甚至课外活动,从而提高学生的参与度和学习效果。

8、教育示例

利用Surprise库,根据学生的偏好推荐教育资源。

  1. 数据集:
import pandas as pd
# 假设'education_data.csv'包含列'student_id'、'resource_id'和'rating'
education_data = pd. read_csv (" path_to / education_data . csv")
print ( education_data . head ()
  1. 分析资源受欢迎程度:

找出最受欢迎或评分最高的教育资源。

resource_popularity = education_filtered . groupby
’resource_id ’). sum ()
most_popular_resource =
resource_popularity [’rating ’]. idxmax ()
print (" Most_popular_resource :
{ most_popular_resource }")
  1. 建立教育推荐模型:

利用Surprise库,根据用户偏好推荐教育资源。

resource_popularity =
education_filtered . groupby (’ resource_id ’). sum ()
most_popular_resource =
resource_popularity [’rating ’]. idxmax ()
print (" Most _popular _resource :{ most_popular_resource }")
  1. 推荐教育资源:

针对特定学生和教育资源预测评分,展示该模型在教育环境中的适用性。

Student_id = ’student123 ’
resource = ’course456 ’
predicted_rating = algo . predict ( Student_id , resource ). est
print (" Predicted_rating_for_resource
{ resource }_by_user_{ user_id }:{ predicted_rating }")

可以在Github上查看源代码和数据集。

【Github】: https://github.com/chukolate007/amazon-user-based-recommendation-system

技术交流&材料获取

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

资料干货、资料分享、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、添加微信号:dkl88194,备注:来自CSDN + 资料
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复: 资料

1、数据分析实战宝典
在这里插入图片描述

2、100个超强算法模型

我们打造了《100个超强算法模型》,特点:从0到1轻松学习,原理、代码、案例应有尽有,所有的算法模型都是按照这样的节奏进行表述,所以是一套完完整整的案例库。

很多初学者是有这么一个痛点,就是案例,案例的完整性直接影响同学的兴致。因此,我整理了 100个最常见的算法模型,在你的学习路上助推一把!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/299103.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年【天津市安全员C证】找解析及天津市安全员C证模拟考试题

题库来源:安全生产模拟考试一点通公众号小程序 天津市安全员C证找解析考前必练!安全生产模拟考试一点通每个月更新天津市安全员C证模拟考试题题目及答案!多做几遍,其实通过天津市安全员C证模拟考试题库很简单。 1、【多选题】《建…

飞桨星河社区助力大模型时代开发者砥砺前行!

大模型引领AI新浪潮,助力人工智能实现从感知理解到生成创造的飞跃。飞桨星河社区,覆盖深度学习初学者、在职开发者、企业开发者、高校教师、创业者等,是国内最大的AI开发者社区,以飞桨和文心大模型为核心,集开放数据、…

疫病困扰,本文或许能帮你拨云见日

1、《伤寒论》中的大青龙,五苓散,小柴胡,麻杏甘石等就是千百年来,老祖宗给我们留下的方子,也被无数实践证明有效。 2、中西医思路不同,西医研究病毒,治疗手段就是对付病毒。而中医用中草药推动…

Scala安装

Scala安装使用 windows安装,配置环境变量 以下载Scala2.11为例,操作在Windows中安装Scala。 官网下载scala2.11:All Available Versions | The Scala Programming Language下载好后安装。双击msi包安装,记住安装的路径。配置环境变量(和配…

如何改进SEO?学会这5个策略就没问题

引言: 在当今竞争激烈的在线市场中,搜索引擎优化(SEO)对于网站的成功至关重要。通过采用正确的策略和技巧,你可以提高网站在搜索引擎结果页面中的排名,吸引更多的有针对性的流量。在本文中,我们…

优雅地使用python读取excel

python读取excel可以用pandas模块,功能比较强大 在对应的虚拟环境里面用anaconda安装(如果你的python运行环境是用anaconda配置的),如果没有添加虚拟环境,直接在终端里面pip3 install pandas安装就可以。 import pan…

Mac使用Python的tkinter显示异常解决方案

显示异常的原因&#xff1a; macOS版本>12 & python版本<3.9.8 参考文档 :https://www.python.org/download/mac/tcltk/ 如果python版本过低&#xff1a; brew upgrade python: 升级python版本 brew install python-tk: 安装最新的tk版本 python -m tkinter : 弹…

ADAudit Plus助力企业内部员工行为审计:解密安全控制利器

在当今信息技术高度发达的时代&#xff0c;企业内部的数据安全日益成为管理者关注的焦点。内部员工行为审计作为数据保护的一项重要措施&#xff0c;为企业提供了对内部操作和数据访问的全面监控。而在这一领域&#xff0c;ADAudit Plus凭借其卓越的功能和性能傲然脱颖而出&…

Mysql创建事件报错

如上&#xff0c;navicat中创建Mysql事件报错 原因&#xff1a;如上代码第三行自动生成异常 正常应该是&#xff1a; CREATE EVENT XXX.Untitled ON SCHEDULE EVERY 1 DAY STARTS 2023-12-25 08:00:00 DO CALL test_log();

运维大模型探索之 Text2PromQL 问答机器人

作者&#xff1a;陈昆仪&#xff08;图杨&#xff09; 大家下午好&#xff0c;我是来自阿里云可观测团队的算法工程师陈昆仪。今天分享的主题是“和我交谈并获得您想要的PromQL”。今天我跟大家分享在将AIGC技术运用到可观测领域的探索。 今天分享主要包括5个部分&#xff1a;…

【Spring】SpringBoot 配置文件

文章目录 什么是配置文件SpringBoot配置文件配置文件快速入手配置文件的格式properties 配置文件说明properties 基本语法读取配置文件信息properties 配置格式缺点 yml 配置文件说明yml 基本语法使用 yml 连接数据库 yml 使用进阶yml 配置不同数据类型配置对象配置集合配置Map…

C语言——字符函数和字符串函数(三)【strtok,strerror,perror】

&#x1f4dd;前言&#xff1a; 上一篇文章C语言——字符函数和字符串函数&#xff08;二&#xff09;对字符函数和字符串函数strstr&#xff0c;strcmp和strncmp进行了一定的讲解 这篇文章主要讲解以下函数的用法: 1&#xff0c;strtok 2&#xff0c;strerror 3&#xff0c;pe…