@IT·互联网大学生活程序员

相似度测量

2017-05-07  本文已影响269人  金际一线天

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

  • 曼哈顿距离 (Manhattan Distance)
  • 欧氏距离 (Euclidean Distance)
  • 皮尔逊相关系数 (Pearson Correlation Coefficient)
  • 余弦相似度 (Cosine Similarity)
  • 修正余弦相似度 (Adjust Cosine Similarity)

曼哈顿距离[1]

我们可以定义曼哈顿距离的正式意义为L1-距离城市区块距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。

(1) 在二维平面中,用户可以用一个二维坐标来表示

Euclidean.png

在 欧几里得空间中,假设存在两点 x, y,则距离如下计算

Cosin.jpg

余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。

这结果是与向量的长度无关的,仅仅与向量的指向方向相关。

应用:在信息检索中,每个词项被赋予不同的维度,而一个文档由一个向量表示,其各个维度上的值对应于该词项在文档中出现的频率。余弦相似度因此可以给出两篇文档在其主题方面的相似度。

x, y对应于欧式空间中两个向量,则余弦相似度的计算公式如下:

修正余弦相似度

修正余弦相似度,考虑到用户的评分尺度问题,比如在评分为[1, 5]之间,有的用户即使很是喜欢,但是其给的评分依旧不会很高,同理即使很不喜欢给的评分也不会很低,所以通过减去用户对项评分的均值,修正的余弦相似性度量方法改善了以上问题。

计算公式如下:


其中,U表示所有对 i 和 j 进行过评级的用户组成的集合

末尾

你可能觉得这些都是比较基础的知识,但是这却是我接下来要写文章的基础,所以先把基础都打牢固。接下来将会写协同过滤的文章,到时候我会结合代码,这样更加清晰易懂。

吐槽一下,编辑这些数学公式,真是费心呀!!!


  1. https://zh.wikipedia.org/wiki/%E6%9B%BC%E5%93%88%E9%A0%93%E8%B7%9D%E9%9B%A2

  2. https://zh.wikipedia.org/wiki/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E8%B7%9D%E7%A6%BB

  3. https://zh.wikipedia.org/zh-cn/%E7%9A%AE%E5%B0%94%E9%80%8A%E7%A7%AF%E7%9F%A9%E7%9B%B8%E5%85%B3%E7%B3%BB%E6%95%B0

  4. https://blog.sectong.com/blog/cosine_similarity.html

上一篇下一篇

猜你喜欢

热点阅读