python|surprise学习文档(一)

推荐系统-Python+surprise 利用surprise+自己的数据构建推荐系统 surprise介绍 surprise是一个python的推荐系统的库,里面包含数据下载、数据处理、模型(包括svd、svd++、slopeone、random rating base 等,具体可以去看官方文档地址)、评分等各种功能 实现 安装 1、在命令行 pip install surprise 2、命令行安装报错的话可以去[py... 阅读详情

本文是用来记录学习surprise的过程。
本文内容:

  1. 自动交叉验证
  2. train-test split 和 fit() 方法
  3. 训练整个数据集和predict()方法

排个雷:evaluate()方法在1.0.5版本中已经弃用(功能上已由取代model_selection().cross_validate),并在1.1.0中删除(你要看一下你现在安装的版本)。

1.自动交叉验证

Surprise有一套内置的算法和数据集供您使用。在最简单的形式中,只需几行代码即可运行交叉验证程序:

import surprise
from surprise import SVD
from surprise import Dataset
# evaluate()方法在1.0.5版本中已经弃用(功能上已由取代model_selection().cross_validate),并在1.1.0中删除(你要看一下你现在安装的版本)。

from surprise.model_selection import cross_validate

# 首次运行需要下载
data = Dataset.load_builtin(name='ml-100k') # Movielens 数据集

# 假设使用SVD矩阵分解
algo = SVD()

#运行5倍交叉验证并打印结果
cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

代码运行结果:由于随机化,结果可能有差别。


                  Fold 1  Fold 2  Fold 3  Fold 4  Fold 5  Mean    Std
RMSE (testset)    0.9332  0.9367  0.9360  0.9396  0.9363  0.9364  0.0020
MAE (testset)     0.7360  0.7372  0.7376  0.7394  0.7385  0.7378  0.0012
Fit time          6.48    6.84    8.08    6.43    6.50    6.87    0.63
Test time         0.23    0.26    0.25    0.23    0.21    0.24    0.02

这个load_builtin()方法将提供下载电影-100 k数据集(如果你尚未下载),则将其保存在.surprise_data文件夹在您的主目录中(您也可以选择保存它)。其他地方).

我们在这里用的是SVD算法,但许多其他算法是可用的。

这个cross_validate()函数根据cv参数,并计算accuracy措施。我们在这里使用的是经典的5倍交叉验证,但是可以使用更好的迭代器。

2.train-test split 和 fit() 方法

如果不希望运行完整的交叉验证过程,则可以使用train_test_split()若要示例具有给定大小的培训集和测试集,请使用accuracy metric你的选择。您需要使用fit()方法,该方法将在训练集上训练算法,以及test()方法,该方法将返回从测试集所作的预测:

from surprise import SVD
from surprise import Dataset
from surprise import accuracy
from surprise.model_selection import train_test_split

# 首次运行需要下载
data = Dataset.load_builtin('ml-100k') # Movielens 数据集

# 随机测试集和训练集
# 将25%的数据设置为测试集
trainset, testset = train_test_split(data, test_size=.25)

# 使用SVD矩阵分解
algo = SVD()

# 在训练集中训练算法,并在测试集中预测
algo.fit(trainset)
predictions = algo.test(testset)

'''
# 可以使用下面这行代码来训练和测试算法
predictions = algo.fit(trainset).test(testset)
'''

# 计算 RMSE
accuracy.rmse(predictions)

计算得到的结果是:

RMSE: 0.9425

可能每次运行得到的结果不太一样,前面已经讲过了。

3.训练整个数据集和predict()方法

我们可以简单的将算法与整个数据集相匹配,而不是运行交叉验证。可以用build_full_trainset()构建trainset对象方法实现:

from surprise import KNNBasic
from surprise import Dataset

# 首次运行需要下载
data = Dataset.load_builtin('ml-100k') # Movielens 数据集

# Retrieve the trainset.
# 训练集
trainset = data.build_full_trainset()

# 构建算法并训练
algo = KNNBasic()
algo.fit(trainset)

# 确保这两个在训练集中,并且真实值为4
uid = str(196)  # 用户
iid = str(302)  # 物品

# 获取特定用户和物品的预测
pred = algo.predict(uid, iid, r_ui=4, verbose=True)

运行结果:

user: 196        item: 302        r_ui = 4.00   est = 4.06   {'actual_k': 40, 'was_impossible': False}

其中est是预测值

本文讲解的都是内置的数据集,也可以使用自己的数据集,将在下文讲解。

Surprise: 一个强大的Python推荐系统库 Surprise是一个强大的Python推荐系统库,专门用于构建和分析处理显式评分数据的推荐系统。作为一个Python scikit库,Surprise为推荐系统研究和开发提供了一个全面而灵活的工具集。SurpriseSurprise为推荐系统的研究和开发提供了一个强大而灵活的工具。无论是学术研究还是商业应用,Surprise都能满足各种推荐系统的需求。通过其丰富的算法库、便捷的数据处理功能和全面的评估工具,开发者可以快速构建、测试和优化推荐模型。 阅读详情

相关推荐

Surprise:一个Python推荐系统算法库

Surprise,是scikit系列中的一个推荐系统算法库。 官网:http://surpriselib.com/;Conda指令:https://anaconda.org/nicolashug/scikit-surprise 文档:http://surprise.readthedocs.io/en/stable/ 一、基本模块 1. 推荐算法分类 可分为基于用户行为的推荐算法和基于内容...

marsjhao Blog 1万+

Python推荐系统库——Surprise

@ 2018-01-24 Surprise 简单易用同时支持多种推荐算法 其中基于近邻的方法协同过滤可以设定不同的度量准则 支持不同的评估准则 使用示例 基本使用方法如下 载入自己的数据集方法 算法调参让推荐系统有更好的效果 在自己的数据集上训练模型 首先载入数据 使用不同的推荐系统算法进行建模比较 建模和存储模型 用协同过滤构建模型并进行预测 1 movielens的例子 2

静下心来好好学习 5万+

构建推荐系统之scikit-surprise

Surprise(Simple Python Recommendation System Engine)是一个用来构建和分析推荐系统的Python scikit,简单易用,且支持很多种算法,可点击这里下载。   一、surprise支持的算法 1、支持的算法 基础算法/baseline algorithms 基于近邻方法(协同过滤)/neighborhood methods 矩阵分...

sophiezjz的博客 3170

surprise库使用(一)——使用内置数据集

自动交叉验证法from surprise import SVD from surprise import Dataset from surprise.model_selection import cross_validate data = Dataset.load_builtin('ml-100k') #加载movielens-100k数据集 algo = SVD() #使用SVD算法 c...

yuxeaotao的博客 5265

分辨率太小 / Retina 模糊 / 全屏异常:一篇解决 VMware Fusion + Kali 显示问题(Xfce & GNOME 通用)

本文提供了在Mac(尤其是Retina屏)上运行Kali Linux时常见显示问题的完整解决方案。主要解决三类问题:分辨率太小、Retina屏模糊和全屏异常。核心思路是先安装open-vm-tools-desktop并重启,这是90%问题的根源。然后根据不同问题分别处理:调整DPI/Scale解决字体大小,避免双重缩放导致的模糊,以及通过窗口拉伸和重启解决全屏异常。文章还给出了针对Xfce和GNOME的最佳配置建议,并强调调试完成后应创建快照以便快速恢复。最后提供了速查表,方便用户快速参考关键步骤。

致力于分享在各类技术领域的学习与实践经验,涵盖编程、虚拟化、开源工具、网络安全等。 876

STM32基于软件模拟IIC进行AHT21B温湿度采集

通过学习软件IIC来进行实操AHT21B采集温湿度。

Liu-FE的博客 3700

基于Python和Surprise库,新手也能动手搭建推荐系统

海象运算符也称为赋值表达式操作符,是 Python 3.8 中引入的一个新特性。它允许为变量赋值,并在同一个表达式中使用,而无需写两次。海象运算符的语法是:=,它可以用于不允许使用常规赋值语句的地方,例如 lambda 函数、列表理解或条件表达式。例如,假设您想编写一个函数来检查一个字符串是否是回文字符串(正向阅读和反向阅读时是否相同)。但是,这种方法会创建一个字符串副本,对于大字符串来说效率很低。这样,只需反转字符串一次,如有需要,还可以将变量 rev 用于其他用途。

m0_59236602的博客 766

n8n AI高效工作流自动化 部署使用教程

摘要: n8n是一款开源可视化工作流自动化工具,结合AI能力可高效解决重复性任务。文章详细介绍了从Docker部署到实战应用的完整流程:1)通过Docker Compose自托管n8n,确保数据可控;2)以AI客服日报机器人为例,演示如何串联工单系统、ChatGPT和邮件通知,实现定时自动化;3)进阶搭建交互式AI助手,利用ToolsAgent节点调用业务API;4)整合向量数据库构建RAG知识库问答。关键建议包括:拆分复杂工作流、严格管理凭据、区分开发与生产环境,并建议从高频刚性需求(如日报生成)切入,逐

专注AI大模型,软件混淆,授权 267

python安装surprise库总是失败

python安装surprise库缺乏组件的解决办法1.背景:2.明确问题3.找到资源包4.问题解决5.总结 1.背景: 在做一个用到django框架做音乐的推荐时,由于要用到SVD算法,需要导入surprise库,直接在pycharm里安装时报错,如下图。 2. 后面尝试在终端安装,但也直接报错,如下图。 3. 仔细查看报错信息,在报错的最后查看提示信息,提示让我将pip升级。 4. 但将pip升级后进行安装也没有,看来原因另有其他。 2.明确问题 再仔细查看报错的提示信息时,上面附有一个官网,

嗨 9160

【PowerBI专栏】PowerBI导入MYSQL数据库

本文介绍了在PowerBI中连接MySQL数据库的方法。首先需要下载并安装MySQL官方.NET连接驱动(推荐8.4.0版本),安装完成后重启PowerBI。连接时需填写服务器IP和数据库名称等必填参数。文章详细说明了连接配置步骤,包括账户设置、数据表选择以及可能遇到的数据格式转换问题处理。最后指导用户完成数据清洗后进入PowerPivot进行后续计算。特别提醒最新9.4版本可能存在兼容性问题,建议使用稳定的8.4版本连接器。

技术与管理的平衡木- 695

分类预测 | MATLAB实现ELM极限学习机多特征分类预测(二分类)

分类预测 | MATLAB实现ELM极限学习机多特征分类预测(二分类)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 779

python surprise库_surprise库文档翻译

这里的格式并没有做过多的处理,可参考于OneNote笔记链接由于OneNote取消了单页分享,如果需要请留下邮箱,我会邮件发送pdf版本,后续再解决这个问题推荐算法库surprise安装pip install surprise基本用法• 自动交叉验证# Load the movielens-100k dataset (download it if needed),data = Dataset.lo...

weixin_39934063的博客 565

openpi 入门教程(二)droid libero 训练、推理

OpenPI是由物理智能团队发布的机器人领域开源模型与软件平台,提供基于流扩散式(π₀)和自回归式(π₀-FAST)两类视觉-语言-动作模型。平台支持在DROID、ALOHA、UR5等多种机器人系统上部署,包含预训练检查点(1万+小时数据)和微调示例。文档详细说明了各平台部署流程:DROID需启动策略服务器并配置摄像头;ALOHA提供真实机器人任务(取吐司、叠毛巾等)的检查点和场景设置建议;UR5示例展示自定义数据转换方法。实验性验证显示π₀-FAST在LIBERO基准测试中平均得分85.5。平台强调模型适

2506_90492529的博客 1024

推荐系统(Surprise)

Surprise 是一个 Python 库,专门用于构建和评估推荐系统。它提供了一系列的算法,如基于用户的协同过滤、基于物品的协同过滤、奇异值分解(SVD)等,同时还支持模型的训练、评估和调优。

weixin_43156294的博客 2647

Python爬虫实战:Playwright 攻克京东图书新书榜(含动态价格与分页)!

我长期专注 Python 爬虫工程化实战,主理专栏 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 594

提示libfakeroot.so或libfakeroot-sysv.so出错处理方法

嵌入式Linux、Buildroot交叉编译出现fakeroot问题处理方法。

阿xin*的嵌入式AI 1443

Surprise库使用总结

文章目录Surprise库1. 加载数据模块2. 模型训练前的数据划分模块2.1 交叉验证数据划分2.2 训练集测试集划分3 构建算法模块3.1 记号说明3.2 基于统计的算法3.3 基于近邻(协同过滤)的方法3.3.1 [相似度计算模块](https://surprise.readthedocs.io/en/stable/similarities.html)3.3.2 [预测算法](https:...

爱丹丹的博客 8060

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python surprise库_Python推荐系统库——Surprise

@ 2018-01-24Surprise在推荐系统的建模过程中,我们将用到python库 Surprise(Simple Python RecommendatIon System Engine),是scikit系列中的一个(很多同学用过scikit-learn和scikit-image等库)。Surprise的User Guide有详细的解释和说明简单易用,同时支持多种推荐算法:算法类名说明Alg...

weixin_39621235的博客 730

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

推荐系统surprise库教程

推荐系统surprise库官方文档解读安装时常见问题Surprise的功能示例使用内置的数据集+交叉验证不使用交叉验证,只把数据集分割一次 安装时常见问题 surprise库的github地址https://github.com/NicolasHug/Surprise 安装常见问题:出现报错(error: Microsoft Visual C++ 14.0 is required. Get it ...

百载文枢江左的博客 4983

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python surprise库_Python推荐系统库:Surprise

Surprise简介Surprise(Simple Python Recommendation System Engine)是一款推荐系统库,是scikit系列中的一个。surprise设计时考虑到以下目的:让用户完美控制他们的实验。为此,特别强调文档,试图通过指出算法的每个细节尽可能清晰和准确。减轻数据集处理的痛苦。用户可以使用内置数据集(Movielens, Jester)和他们自己的自定义数...

weixin_39977136的博客 822

python的surprise库用法,---自看版随着学习随着更新

简单易用,同时支持多种推荐算法: 基础算法/baseline algorithms 基于近邻方法(协同过滤)/neighborhood methods 矩阵分解方法/matrix factorization-based (SVD, PMF, SVD++, NMF) 官方指南的使用方法: https://surprise.readthedocs.io/en/stable/prediction_alg...

foolgirlfei12345的博客 2654

surprise,一个有趣的 Python 库!

Surprise库支持从Pandas DataFrame中加载数据。# 创建DataFramedata = {# 定义数据格式# 加载数据print("数据加载成功!")Surprise库是一个功能强大且易于使用的推荐系统开发工具,能够帮助开发者高效地构建、评估和优化推荐系统。通过支持多种推荐算法、灵活的数据加载方式、易于评估和超参数优化等特性,Surprise库能够满足各种推荐系统开发需求。本文详细介绍了Surprise库的安装方法、主要特性、基本和高级功能,以及实际应用场景。

涛哥聊Python 1476

【掌握推荐预测的王】基于Python Surprise库的实践指南

Surprise库是一个用于推荐系统的Python库,它支持多种评分预测算法,包括基于内存的协同过滤算法、矩阵分解算法等。Surprise库的特点是易用性强,文档齐全,社区活跃,是研究和开发推荐系统的理想选择。个性化推荐系统在旅游行业的应用前景广阔。通过Surprise库,我们可以快速构建一个基本的推荐系统,并在此基础上进行扩展和优化,以满足不同用户的需求。

辅导大学生代码设计15年 1282

Python Surprise 实现推荐系统入门

推荐系统是人工智能领域的重要应用之一,旨在根据用户的历史行为和偏好,向用户推荐可能感兴趣的商品或内容。`Surprise` 是一个 Python 库,专门用于构建和评估推荐系统。它提供了多种推荐算法,包括协同过滤、基于内容的推荐和矩阵分解等。本文介绍如何使用 Python 和 Surprise 库实现一个推荐系统。

肖哥弹架构博客 813

python surprise

surprise 库 目录 surprise 库 目录 参考文档 安装 预测算法 prediction_algorithms包 The algorithm base class 算法基类 Baselines estimates configuration 基线法估计配置 使用GridSearchCV调整算法参数 Similarity measure configuration 相似度...

MLee 的博客 2198
上一篇: python安装surprise报错解决办法
下一篇: 社交网络分析——影响力最大化(附带python例子实现)
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值