推荐系统(一):使用Surprise库建立推荐系统 —— MovieLens电影推荐

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

版权声明:本文为博主原创文章,未经博主允许不得转载。



一、Surprise介绍

  • Surprise是一个基于Python scikit构建和分析推荐系统。
  • Surprise(Simple Python Recommendation System Engine)是一款推荐系统库,是scikit系列中的一个。
  • 简单易用,同时支持多种推荐算法:基础算法、基于近邻方法(协同过滤)、矩阵分解等(SVD, PMF, SVD++, NMF)

二、设计surprise时考虑到以下目的

  • 让用户完美控制他们的实验。为此,特别强调文档,试图通过指出算法的每个细节尽可能清晰和准确。
  • 减轻数据集处理的痛苦。用户可以使用内置数据集(Movielens, Jester)和他们自己的自定义数据集。
  • 提供各种即用型预测算法, 例如:基线算法, 邻域方法,基于矩阵因子分解( SVD, PMF, SVD ++,NMF)等等。此外, 内置了各种相似性度量(余弦,MSD,皮尔逊…)。可以轻松实现新的算法思路
  • 提供评估, 分析和比较算法性能的工具。使用强大的CV迭代器(受scikit-learn优秀工具启发)以及对一组参数的详尽搜索,可以非常轻松地运行交叉验证程序 。

三、常用类

用法:surprise.prediction_algorithms.XX

算法类名 说明

random_pred.NormalPredictor

Algorithm predicting a random rating based on the distribution of the training set, which is assumed to be normal. (根据训练集的分布特征随机给出一个预测值)

baseline_only.BaselineOnly

Algorithm predicting the baseline estimate for given user and item.(给定用户和Item,给出基于baseline的估计值)

knns.KNNBasic

A basic collaborative filtering algorithm.

knns.KNNWithMeans

A basic collaborative filtering algorithm, taking into account the mean ratings of each user.(将每个用户评分的均值考虑在内的协同过滤实现)

knns.KNNBaseline

A basic collaborative filtering algorithm taking into account a baseline rating.

matrix_factorization.SVD

SVD algorithm

matrix_factorization.SVDpp

SVD++ algorithm(即LFM+SVD)

matrix_factorization.NMF

A collaborative filtering algorithm based on Non-negative Matrix Factorization.(基于矩阵分解的协同过滤)

slope_one.SlopeOne

A simple yet accurate collaborative filtering algorithm.

co_clustering.CoClustering

A collaborative filtering algorithm based on co-clustering.

其中基于近邻的方法(协同过滤)可以设定不同的度量准则,用法:surprise.similarities.XX

相似度度量标准 度量标准说明

cosine()

Compute the cosine similarity between all pairs of users (or items).(余弦相似度)

msd()

Compute the Mean Squared Difference similarity between all pairs of users (or items).(均方差异相似度)

pearson()

Compute the Pearson correlation coefficient between all pairs of users (or items).(Pearson相关系数)

pearson_baseline()

Compute the (shrunk) Pearson correlation coefficient between all pairs of users (or items) using baselines for centering instead of means.

支持不同的评估准则,用法:surprise.accuracy.XX

评估准则 准则说明 公式 意义

mse

Compute MSE (Mean Squared Error).

在这里插入图片描述 均方误差

rmse

Compute RMSE (Root Mean Squared Error).

在这里插入图片描述 均方根误差

mae

Compute MAE (Mean Absolute Error).

在这里插入图片描述 平均绝对误差

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

相关推荐

Python实战:用Surprise库快速搭建电影推荐系统(附完整代码)

本文手把手教你使用Python的Surprise库快速搭建电影推荐系统。通过协同过滤和SVD矩阵分解等机器学习算法,从数据加载、模型训练、超参数调优到效果评估,提供完整代码实战,助你轻松入门推荐系统开发。

weixin_29194817的博客 583

基于Jupyter与MovieLens的电影推荐系统实战设计

MovieLens 数据集包含多个版本,常见版本有ml-latest(最新版)、ml-25m(约2500万条评分)、ml-1m(约100万条评分)和ml-100k(约10万条评分)。不同版本的数据集适用于不同规模的实验:数据集版本评分数量用户数量电影数量推荐场景适用性ml-100k100,000~943~1,682初学者实验ml-1m1,000,209~6,040~3,706中型推荐系统研究。

weixin_33610780的博客 1234

【Hypermesh】TetraMesh Panel 常用选项详解

结合Hypermesh 2020 帮助文档和自己的一点使用经验,整理了这个博客。

qgm1702的博客 3675

Qt加载百度地图详细流程(附带报错解决方法)

一篇文章看懂Qt如何加载出百度地图......

qq_60018273的博客 1604

MySQL 优化 - index_merge 导致查询偶发变慢

今天遇到了一个有意思的问题,线上数据库 CPU 出现了偶发的抖动。定位到原因是一条查询语句偶发变慢造成的,随后通过调整表中的索引解决。优化器通过某种机制检测到 index_merge 能带来性能提升,某些情况下不会带来提升,反而会耗费更长的时间,属于优化器的缺陷,可以通过调整表中的索引来解决。

分享既学习 1254

Unity四部曲(核心)

需要先改成Cube复杂的展开留到unity进阶再说。

ultraman1234566的博客 2797

『Apisix进阶(九)』基于Upstream实现服务转发的最佳实践

本篇文章将以服务转发为核心,带你从原理到实战,深入了解 Upstream 的配置方法与常用场景。

老陈聊架构 1513

基于Simulink与MATLAB的七轴OpenArm机械臂逆运动学仿真与轨迹规划完整指南

本文详细介绍了七自由度OpenArm机械臂在MATLAB/Simulink环境下的运动学仿真与轨迹规划实现方法。首先建立了机械臂的DH参数模型,验证了正运动学计算;随后提出了两种逆运动学求解算法(数值迭代法和臂型角参数化解析法)的MATLAB实现方案;最后在Simulink中搭建了完整的轨迹规划与控制系统。研究解决了七自由度冗余机械臂特有的多解性、奇异性和关节限位约束等核心问题,为OpenArm机械臂的运动控制提供了完整的技术方案和可运行代码实现。

AI的内部世界的博客 681

【AUTOSAR-E2E】-2.1-配置E2E:基于E2EPW配置一个RX接收的Signal Group(使用E2E Profile 2)

《共13页精讲》:此法也适用于E2E Profile 4/5/6/7/11/22 目录 1 检查CAN Matrix Arxml/DBC是否满足E2E需求 2 在DaVinci Developer中为Port添加E2E保护 3 在DaVinci Configurator settings设置 4 如何使用应用层的E2E保护 5 结尾 <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--

「汽车电子助手」的博客 4417

搭建AutoSAR开发环境

任何开发都需要一套开发环境,包括软硬件环境,笔者后续将介绍的是 NXP 的 S32K144 配套的开发板。接下来详细介绍怎么获取这些软硬件工具。仅供个人学习使用!

cfl927096306的博客 6105

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 深度学习实战(六):生成式对抗网络(Gan)下篇 —— 代码--基于tensorflow实现
下一篇: 推荐系统(二):使用Tensorflow构造隐语义模型 —— MovieLens电影评分
InitialHeart2021
博客等级 码龄5年 49粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

InitialHeart2021

你的鼓励是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值