Python推荐系统库Surprise

Surprise简介

Surprise(Simple Python Recommendation System Engine)是一款推荐系统库,是scikit系列中的一个。surprise设计时考虑到以下目的:

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

Surprise的主要特点是简单易用,同时支持多种推荐算法:

  • 基础算法/baseline algorithms
    • NormalPredictor: 根据训练集的分布特征随机给出一个预测值
    • BaselineOnly:给定用户和Item,给出基于baseline的估计值
  • 基于近邻方法(协同过滤)/neighborhood methods
    • KNNBasic:最基础的协同过滤
    • KNNWithMeans:将每个用户评分的均值考虑在内的协同过滤实现
    • KNNBaseline:考虑基线评级的协同过滤
  • 矩阵分解方法/matrix factorization-based
    • SVD:SVD实现
    • SVDpp:SVD++,即LFM+SVD
    • NMF:基于矩阵分解的协同过滤
    • SlopeOne:一个简单但精确的协同过滤算法
    • CoClustering:基于协同聚类的协同过滤算法

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

  • Cosine:余弦相似度
  • msd:均方差异相似度
  • pearson:Pearson相关系数。
  • pearson_baseline:(缩小的)Pearson相关系数,使用基线进行居中而不是平均值。

支持不同的评估准则:

  • rmse:均方根误差
  • mae:平均绝对误差
  • fcp:协调对的分数

Surprise的使用

Surprise的使用文档中已经写的非常清楚,这里就不再重复了。

参考链接:

微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

机器学习在旅游与酒店个性化的研究

当我们访问Netflix、 YouTube 或Amazon时,我们认为个性化推荐是理所当然的。这些服务已经探索

机器学习: 商业与数据科学之间的桥梁

每次我们谈论自动驾驶汽车、聊天机器人、 AlphaGo 或者预测分析,都会涉及到一些机器学习技术的实现。在公众

Python检验数据是否正态分布

判断数据是否符合正态分布,比如使用3-sigma判断数据异常前,首先需要确定的是数据是否符合正态分布。今天一起

发表评论

电子邮件地址不会被公开。 必填项已用*标注