Surprise 框架

Surprise官方文档参考
源码参考

Surprise 是Python下的一个推荐算法实现的库,Python首选。
Surprise支持常见的推荐算法:

  • 基础算法(baseline algorithm)
  • 协同过滤算法(基于近邻算法)
  • 矩阵分解算法 matrix factorization-based(SVD PMF SVD++ NMF)
算法 描述
random.NormalPredictor() 基于统计的推荐系统预测打分,假定用户打分的分布是基于正态分布的
BaselineOnly 基于统计的基准预测线打分
knns.KNNBasic 基本的协同过滤算法
knns.KNNWithMeans 协同过滤算法的变种,考虑每个用户的平均评分
knns.KNNWithZScore 协同过滤算法的变种,考虑每个用户评分的归一化操作
knns.KNNBaseline 协同过滤算法的变种,考虑每个用户评分的基线
matrix_factorzation.SVD SVD 矩阵分解算法
matrix_factorzation.SVDpp SVD++ 矩阵分解算法
matrix_factorzation.NMF 一种非负矩阵分解的协同过滤算法
SlopeOne SlopeOne 协同过滤算法
相似度度量指标 描述
cosine 计算所有用户或者物品之间的余弦相似度
msd 计算所有用户或者物品之间的平均平方差相似度

基于统计的推荐算法

Normal Perdictor 认为用户对物品的评分是服从正态分布的,从而可以根据已有的评分的均值方差 预测当前用户对其他物品评分的分数。
f(r_{ui}) = \frac{1}{ \sqrt{2 \pi}\sigma_u}e^{-\frac{({r_{ui} - \mu_u)}^2 }{2 \sigma^2_u}}
基于大数定理或者使用最大似然估计

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 太长不读版:由推荐系统带来的推荐服务基本上已经渗透到我们生活的方方面面,本文作为浅谈推荐系统的基础篇,主要从下面几...
    stayrascal阅读 31,631评论 5 60
  • 协同过滤和推荐系统几乎可以划等号,协同过滤的重点在于“协同”,所谓协同,也就是群体互帮互助,互相支持是集体智慧的体...
    andyham阅读 1,762评论 0 3
  • 这篇文章的技术难度会低一些,主要是对推荐系统所涉及到的各部分内容进行介绍,以及给出一些推荐系统的常用算法,比起技术...
    城市中迷途小书童阅读 2,865评论 0 17
  • 1. 引言 许多数据分析应用都会涉及到从短文本中提取出潜在的主题,比如微博、短信、日志文件或者评论数据。一方面,提...
    Datartisan数据工匠阅读 7,076评论 0 11
  • 概述 建造者模式(Builder Pattern):将一个复杂对象的构建与表示分离,使构建过程能可以创建出不同的表...
    jxiu阅读 735评论 0 0