Surprise

Surprise是scikit系列中的一个。Surprise的User Guide有详细的解释和说明

支持多种推荐算法

基础算法/baseline algorithms

基于近邻方法(协同过滤)/neighborhood methods

矩阵分解方法/matrix factorization-based (SVD, PMF, SVD++, NMF)

下面介绍几种算法

基础算法:

  1. random_pred.NormalPredictor

  说明:Algorithm predicting a random rating based on the distribution of the training set, which is assumed to be normal.

  意思是:算法基于训练集的分布预测随机等级,假设该分布为正态分布

  2. baseline_only.BaselineOnly

  说明:Algorithm predicting the baseline estimate for given user and item.

  意思是:算法预测给定用户和项目的基线估计

协同过滤算法:

  3. knns.KNNBasic

  说明:A basic collaborative filtering algorithm.

  意思是:一种基本的协同过滤算法

  4. knns.KNNWithMeans

  说明:A basic collaborative filtering algorithm, taking into account the mean ratings of each user.

  意思是:一个基本的协同过滤算法,考虑到每个用户的平均评分

  5. knns.KNNBaseline

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

  意思是:一种基本的协同过滤算法考虑到基准评分

矩阵分解方法:

  6. matrix_factorization.SVD

  说明:The famous SVD algorithm, as popularized by Simon Funk during the Netflix Prize.

  意思是:著名的SVD算法

  7. matrix_factorization.SVDpp

  说明:The SVD++ algorithm, an extension of SVD taking into account implicit ratings.

  意思是:SVD++算法,SVD的一个扩展,考虑到隐式评级

  8. matrix_factorization.NMF

  说明:A collaborative filtering algorithm based on Non-negative Matrix Factorization.

  意思是:一种基于非负矩阵的协同过滤算法

  9. slope_one.SlopeOne

  说明:A simple yet accurate collaborative filtering algorithm.

  意思是:一种简单而准确的协同过滤算法

  10. co_clustering.CoClustering

  说明:A collaborative filtering algorithm based on co-clustering.

  意思是:一种基于共聚类的系统过滤算法

其中基于近邻的方法(协同过滤)可以设定不同的度量准则

相似度度量标准

  1. cosine

  说明:Compute the cosine similarity between all pairs of users (or items).

  意思是:计算所有用户对(或物品)之间的相似度

  2. msd

  说明:Compute the Mean Squared Difference similarity between all pairs of users (or items).

  意思是:计算所有用户对(或物品)之间的平均平方差相似度

  3. pearson

  说明:Compute the Pearson correlation coefficient between all pairs of users (or items).

  意思是:计算所有用户对(或物品)之间的皮尔逊相关系数

  4. pearson_baseline

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

  意思是:计算所有用户对(或物品)之间的皮尔逊相关系数(收缩),使用基线进行居中,而不是使用平均值

支持不同的评估准则

评估准则

  1. rmse    最小均方根误差

  2. mae     平均绝对误差

  3. fcp        协调对的分数

参考文章:https://blog.csdn.net/mycafe_/article/details/79146764

Python推荐系统库--Surprise理论的更多相关文章

  1. Python推荐系统库Surprise

    Surprise(Simple Python Recommendation System Engine)是一款推荐系统库,是scikit系列中的一个.简单易用,同时支持多种推荐算法.基础算法.协同过滤 ...

  2. Python推荐系统库--Surprise实战

    一.使用movieLens数据集 from surprise import KNNBasic, SVD from surprise import Dataset from surprise impor ...

  3. python推荐系统库

    Python推荐系统库——Surprise 在Python中实现你自己的推荐系统 python-recsys:一款实现推荐系统的python库

  4. python推荐淘宝物美价廉商品

    完成的目标: 输入搜索的商品 以及 淘宝的已评价数目.店铺的商品描述(包括如实描述.服务态度.快递的5.0打分): 按要求,晒选出要求数量的结果,并按"物美价廉算法"排序后输出 思 ...

  5. python推荐淘宝物美价廉商品 2.0

    改动: 新增功能 :可选择只看天猫或淘宝 代码模块化封装,参数配置或输入单独在一个py文件管理,主函数功能只留出参数传入在setting配置的py文件里. main.py代码: # -*- codin ...

  6. Python推荐算法学习1

    1.闵可夫斯基距离 闵可夫斯基距离可以概括曼哈顿距离与欧几里得距离.  其中r越大,单个维度差值大小会对整体产生更大的影响.这个很好理解,假设当r=2时一个正方形对角线长度,永远是r=3时正方体对角线 ...

  7. python推荐书籍

    推荐的python电子书 python学习路线图 优先级 入门:python核心编程 提高:python cookbook 其他 (1).数据分析师 需要有深厚的数理统计基础,但是对程序开发能力不做要 ...

  8. python 推荐算法

    每个人都会有这样的经历:当你在电商网站购物时,你会看到天猫给你弹出的“和你买了同样物品的人还买了XXX”的信息:当你在SNS社交网站闲逛时,也会看到弹出的“你可能认识XXX“的信息:你在微博添加关注人 ...

  9. python并发编程-进程理论-进程方法-守护进程-互斥锁-01

    操作系统发展史(主要的几个阶段) 初始系统 1946年第一台计算机诞生,采用手工操作的方式(用穿孔卡片操作) 同一个房间同一时刻只能运行一个程序,效率极低(操作一两个小时,CPU一两秒可能就运算完了) ...

随机推荐

  1. zookeeper的ACL权限控制

    ACL:Access Control List  访问控制列表 1.  简介 0.概述 ACL 权限控制,使用:scheme:id:perm 来标识,主要涵盖 3 个方面: 权限模式(Scheme): ...

  2. java高级 - java利用listener实现回调,即观察者模式

    https://blog.csdn.net/lin_sir6/article/details/70052954

  3. C 和 C++ 一些基础

    位运算: Part1: #include <iostream> using namespace std; int main(int argc, char *argv[]) { //unsi ...

  4. [BugBounty] Sleeping stored Google XSS Awakens a $5000 Bounty

    来源:https://blog.it-securityguard.com/bugbounty-sleeping-stored-google-xss-awakens-a-5000-bounty/ 理解 ...

  5. linux驱动 之 module_init解析 (上)【转】

    转自:https://blog.csdn.net/Richard_LiuJH/article/details/45669207 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...

  6. aiojobs

    import asyncio import aiojobs async def coro(timeout): print(timeout) await asyncio.sleep(timeout) p ...

  7. C# 操作文件类,文件夹存在判断,创建,文件内容读写。

    此篇文档是老早就放到草稿箱中了,断断续续编辑了几次.结合自己经常用到的对于文件的操作,结合msdn做此文. 1.File 类 --转自msdn 常用方法: 名称 说明 AppendAllLines(S ...

  8. LNMP下Nginx 中文文件名或目录404无法访问的解决方法

    貌似很多人还是会遇到中文乱码的问题,Apache可以使用mod_encoding支持中文目录和文件,LNMP下Nginx其实不需要安装额外的组件即可支持中文文件名或中文目录,下面说一下常见的CentO ...

  9. Mybatis--02

    主要内容: 1 输入映射和输出映射 输入参数映射 返回值映射 2 动态sql if where foreach sql片段 3 关联查询 一对一关联 一对多关联 4 整合Spring #{}代表一个占 ...

  10. $Django 中间件 csrf

     中间件  -中间件是什么?请求和响应之间的一道屏障  -中间件作用:控制请求和响应  -django中内置几个中间件   process_request(self,request)   proces ...