Jaccard相似度和余弦相似度的应用和区别

数据挖掘 相似
2021-10-06 21:16:43

Jaccard 相似度余弦相似度是比较项目相似度时两个非常常见的度量。但是,我不太清楚在什么情况下应该比另一种更可取。

有人可以帮助澄清这两种测量的差异(概念或原理的差异,而不是定义或计算的差异)及其优选应用吗?

4个回答

saq7的答案是错误的,也没有回答问题。

∥A∥ 表示L2规范A,即向量在欧几里得空间中的长度,而不是向量的维数A. 换句话说,您不计算 0 位,您只需将 1 位相加并取平方根。

抱歉,对于您何时应该使用哪个指标,我没有真正的答案,但我不能让不正确的答案不受挑战。

Jaccard 相似性由下式给出 sij=pp+q+r

在哪里,

p = 两个对象的正属性
q = i 的属性 1 和 j
的属性 0 r = i 的属性 0 和 j 的属性 1

而余弦相似度 =ABAB其中 A 和 B 是对象向量。

简单地说,在向量 A 和 B 仅包含 0 和 1 的情况下,余弦相似度将共同属性的数量除以 A 和 B 与零的距离的乘积。而在 Jaccard Similarity 中,公共属性的数量除以两个对象中至少一个中存在的属性的数量。

还有许多其他的相似性度量,每一个都有自己的怪癖。在决定使用哪一个时,请尝试考虑几个具有代表性的案例,并找出哪个索引可以提供最有用的结果来实现您的目标。

余弦索引可用于识别抄袭,但不是识别互联网上镜像站点的好索引。而 Jaccard 索引将是识别镜像站点的一个很好的索引,但在捕捉复制意大利面抄袭(在更大的文档中)方面不是那么好。

应用这些指标时,您必须彻底考虑您的问题并弄清楚如何定义相似性。一旦你有了一个定义,你就可以开始购买索引了。

编辑: 早些时候,我在这个答案中有一个例子,这最终是不正确的。感谢指出这一点的几位用户,我已经删除了错误的示例。

Jaccard 相似度用于两种类型的二元情况:

  1. 对称,其中 1 和 0 具有同等重要性(性别、婚姻状况等)
  2. 不对称,其中 1 和 0 具有不同的重要性级别(检测疾病呈阳性)

余弦相似度通常在文本挖掘的上下文中用于比较文档或电子邮件。如果两个文档词向量之间的余弦相似度较高,则两个文档具有更多的共同词

另一个区别是 1 - Jaccard 系数可以用作相异度或距离度量,而余弦相似度没有这样的结构。类似的事情是用于分类学的 Tonimoto 距离。

saq7的答案是错误的。

在哪里 ab二进制向量,它们可以被解释为值为 1 的索引集。因此让我们考虑集合AB.

Jaccard 相似度由下式给出

J(A,B)=|AB||AB|=|AB||AB|+|AB|+|BA|

余弦相似度由下式给出

C(A,B)=|AB||A||B|=|AB|(|AB|+|AB|)(|AB|+|BA|)

一些比较:

  • 这里的分子是一样的。
  • 分母随着大小的算术增长 |A||B| 在 Jaccard 中,但在几何上是余弦。
  • 余弦的分母只取决于项目的数量 |A| 和项目的数量 |B|. 这不取决于他们的交集。

我还没有一个明确的直觉,应该在哪里优先于另一个,除了正如 Vikram Venkat 指出的那样,1 - Jaccard 对应于一个真正的度量,不像余弦;余弦自然扩展到实值向量。