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

254 篇文章 213 订阅
本文详细介绍了scikit-surprise,一个用于Python的推荐系统库,涵盖了其简介、安装步骤、基础用法示例以及在Movielens数据集上的基准测试结果,展示了如何下载数据、拆分验证和评估不同算法的性能。
摘要由CSDN通过智能技术生成

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    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个处女座的程序猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值