Python推荐系统库Surprise

14 sec read

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

黑客马拉松 (Hackathon):POI去重记录

10月24日参加了公司举办的黑客马拉松,我们选的题目是POI的去重。给到的数据格式如下: 目标是去重重复数据。
标点符
2 min read

scikit-learn中的文本特征提取

文本分析是机器学习算法的主要应用领域。由于大部分机器学习算法只能接收固定长度的数值型矩阵特征,导致文本字符串等
标点符
2 min read

斯坦福大学自然语言处理包StanfordNLP

最近在推荐点评的影响抽取,中间涉及到分词后的词性识别,看了各种开源分词工具,主要是词性标注集存在差异,最终选定
标点符
3 min read

发表评论

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