美文网首页程序员
推荐中相似度计算问题(选择与总结)

推荐中相似度计算问题(选择与总结)

作者: 花生花二三说 | 来源:发表于2018-01-11 21:52 被阅读0次

《Dataminingguide》书阅读,第二章 推荐系统入门

1、 曼哈顿距离

最简单的距离计算方式。在二维计算模型中,每个人都可以用(X,Y)的点来表示。例如(X1,Y1)来表示艾米,(X2,Y2)来表示另一位人,那么他们之间的曼哈顿距离就是:
|X1-X2|+|Y1-Y2|

也就是x之差的绝对值加上y之差的绝对值。

曼哈顿距离的优点之一就是计算速度快,对于Facebook这样需要计算百万用户之间的相似度时就非常有利。

2、 欧几里得距离

还是用(X,Y)来表示一个人,那么两个人之间的距离就是:

欧几里得距离计算

在计算两个用户之间的相似度距离时,只取双方都评价过的商品。

曼哈顿距离和欧几里得距离在 数据完整 的情况下效果最好。

3、闵克夫斯基距离

可以将曼哈顿距离和欧几里得距离归纳成一个公式,这个公式称为闵可夫斯基距离:

image.png

R值越大,单个维度的差值大小会对整体距离有更大的影响。

4、 皮尔逊相关系数

分数膨胀:例如用户对乐队的评分,可以发现每个用户的打分标准非常不同,A的4分相当于B的4分还是5分?

解决方法之一就是使用皮尔逊相关系数。

皮尔森相关系数用于衡量两个变量之间的相关性,它的值在-1到1之间,1表示完全吻合,-1表示完全相悖。

皮尔逊相关系数的计算公式是:

image.png

上面的公式除了看起来比较复杂,另一个问题是要获得计算结果必须对数据做多次便利,好在有另外一个公式,能够计算皮尔逊相关系数的近似值:

image.png

这个公式看起来更加复杂,而且计算结果不太稳定,有一定误差存在,但是最大的有点是用代码实现的时候可以只遍历一次数据。

5、 余弦相似度

余弦相似度的计算中会略过这些非零值。它的计算公式是:

image.png

举个例子:

image.png

总结

该选择哪种相似度计算: 如果数据存在“分数膨胀”,就是用皮尔逊相关系数。

如果数据之间比较“密集”,数据比较完整,变量之间基本存在公有值,且这些距离数据是非常重要的,那就使用欧几里得或曼哈顿距离。
(空缺值处理:用0代替空缺值的方法可能会造成较大误差,“平均值”填充效果好于0值填充)

如果数据是稀疏的,则使用余弦相似度。

相关文章

  • 推荐中相似度计算问题(选择与总结)

    《Dataminingguide》书阅读,第二章 推荐系统入门 1、 曼哈顿距离 最简单的距离计算方式。在二维计算...

  • 相似度计算和p-value

    推荐系统中的itembased和userbased协同过滤算法在计算评分时需要用到相似度计算。记录几个常见的相似度...

  • 基于内容推荐系统

    基于内容的推荐系统:利用item之间的相似度,为用户推荐与之前选择过的物品最相似的物品;能够解决冷启动的问题。 主...

  • 基于物品的协同过滤算法的Python实现!

    目录 一. 基于物品的协同过滤 二. 物品相似度计算与实现 三. ICF 的推荐实现 四. 总结一下 五. 练习 ...

  • 使用ES的快速实现内容相似性推荐

    问答系统:通过用户给出的一段描述性文本,通过相似度计算查找与用户输入接近的问题相似推荐:用户在浏览当前文章时,基于...

  • senLDA实践—长短文本相似度

    背景:计算短文本与长文本的相似度,如在搜索场景中,计算query和doc的相似度,用于排序。 经过调研,找到百度的...

  • 集体智慧编程:提供推荐_推荐物品

    前面已经实现不同人之间相似度的计算,接下来就是根据相似度,向用户推荐物品。找到相似度最高的用户B,将他的喜好推荐给...

  • 基于图的推荐算法

    上一次讲了《相似度计算方法:余弦相似度》中,提到了推荐系统中的基于用户的协同过滤算法,由于用户的行为数据,很适合用...

  • 推荐系统法宝-相似度计算

    在一些最临近算法中我们常看见一些距离 欧氏距离 我们最常见也最常用的距离,它能够最直观的描述两个点的距离关系。在N...

  • 相似度测量

    在分类聚类算法,推荐系统中常常需要计算物品之间的相似度,而如何衡量物品之间的相似度,下文将介绍几种常用的计算方法。...

网友评论

    本文标题:推荐中相似度计算问题(选择与总结)

    本文链接:https://www.haomeiwen.com/subject/pzatoxtx.html