Py之scikit-surprise:scikit-surprise的简介、安装、使用方法之详细攻略

2024-03-20 00:59

本文主要是介绍Py之scikit-surprise:scikit-surprise的简介、安装、使用方法之详细攻略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Py之scikit-surprise:scikit-surprise的简介、安装、使用方法之详细攻略

目录

scikit-surprise的简介

1、基准测试

Movielens 100k

Movielens 1M

scikit-surprise的安装

scikit-surprise的使用方法

1、基础用法

(1)、简单的示例,展示如何(下)载数据集,将其拆分为5折交叉验证,并计算SVD算法的MAE和RMSE


scikit-surprise的简介

Surprise,Simple Python RecommendatIon System Engine,是一个用于构建和分析处理显式评分数据的Python scikit推荐系统工具。Surprise的设计目的包括:

>> 为用户提供对实验的完全控制。为此,我们强调文档,试图通过指出算法的每个细节使其尽可能清晰和精确。

>> 缓解数据集处理的痛苦。用户可以使用内置数据集(Movielens、Jester)和自定义数据集。

>> 提供各种可用的预测算法,如基线算法、邻域方法、基于矩阵分解的算法(SVD、PMF、SVD++、NMF)等。此外,还内置了各种相似度度量(余弦、MSD、皮尔逊等)。

>> 使新算法思路的实现变得简单

>> 提供评估、分析和比较算法性能的工具。可以使用强大的CV迭代器(受scikit-learn优秀工具启发)轻松运行交叉验证过程,以及对一组参数进行详尽搜索。

请注意,Surprise不支持隐式评分或基于内容的信息。

1、基准测试

以下是各种算法(使用默认参数)在5折交叉验证过程中的平均RMSE、MAE和总执行时间。数据集包括Movielens 100k和1M数据集,所有算法使用相同的折叠。所有实验在一台搭载Intel i5第11代2.60GHz处理器的笔记本电脑上运行。生成这些表格的代码可以在基准测试示例中找到。

Movielens 100k

Movielens 100kRMSEMAETime
SVD0.9340.7370:00:06
SVD++ (cache_ratings=False)0.9190.7210:01:39
SVD++ (cache_ratings=True)0.9190.7210:01:22
NMF0.9630.7580:00:06
Slope One0.9460.7430:00:09
k-NN0.980.7740:00:08
Centered k-NN0.9510.7490:00:09
k-NN Baseline0.9310.7330:00:13
Co-Clustering0.9630.7530:00:06
Baseline0.9440.7480:00:02
Random1.5181.2190:00:01

Movielens 1M

Movielens 1MRMSEMAETime
SVD0.8730.6860:01:07
SVD++ (cache_ratings=False)0.8620.6720:41:06
SVD++ (cache_ratings=True)0.8620.6720:34:55
NMF0.9160.7230:01:39
Slope One0.9070.7150:02:31
k-NN0.9230.7270:05:27
Centered k-NN0.9290.7380:05:43
k-NN Baseline0.8950.7060:05:55
Co-Clustering0.9150.7170:00:31
Baseline0.9090.7190:00:19
Random1.5041.2060:00:19

scikit-surprise的安装

pip install numpy
pip install scikit-surprise
pip install -i https://mirrors.aliyun.com/pypi/simple scikit-surprise或者利用conda
conda install -c conda-forge scikit-surprise或者从最新的源代码构建
pip install numpy cython
git clone https://github.com/NicolasHug/surprise.git
cd surprise
python setup.py install

scikit-surprise的使用方法

1、基础用法

(1)、简单的示例,展示如何(下)载数据集,将其拆分为5折交叉验证,并计算SVD算法的MAE和RMSE


from surprise import SVD
from surprise import Dataset
from surprise.model_selection import cross_validate# Load the movielens-100k dataset (download it if needed).
data = Dataset.load_builtin('ml-100k')# Use the famous SVD algorithm.
algo = SVD()# Run 5-fold cross-validation and print results.
cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)


Evaluating RMSE, MAE of algorithm SVD on 5 split(s).Fold 1  Fold 2  Fold 3  Fold 4  Fold 5  Mean    Std     
RMSE (testset)    0.9367  0.9355  0.9378  0.9377  0.9300  0.9355  0.0029  
MAE (testset)     0.7387  0.7371  0.7393  0.7397  0.7325  0.7375  0.0026  
Fit time          0.62    0.63    0.63    0.65    0.63    0.63    0.01    
Test time         0.11    0.11    0.14    0.14    0.14    0.13    0.02    

这篇关于Py之scikit-surprise:scikit-surprise的简介、安装、使用方法之详细攻略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/827784

相关文章

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4