Jaccard相似度和余弦相似度的应用和差异


27

雅卡德相似度余弦相似度是比较项目相似度时的两个非常常见的度量。但是,我不清楚在哪种情况下哪个应该比另一个更好。

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

Answers:


19

Jaccard相似度由 s一世Ĵ=pp+q+[R

哪里,

p =两个对象均为正的属性数量
q = i的属性1的数量和j
的属性的数量0 r = i的属性0的数量以及j的属性1的数量

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

简而言之,在余弦相似度中,公共属性的数量除以可能属性的总数。而在“ Jaccard相似性”中,公共属性的数量除以两个对象中至少一个存在的属性的数量。

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

余弦索引可用于识别窃,但不是识别互联网上镜像站点的好索引。尽管Jaccard索引将是识别镜像站点的好索引,但在捕获复制的意大利面抄袭(在较大的文档中)方面并不是那么好。

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

编辑: 以前,我在此答案中包含一个示例,这最终是不正确的。感谢几个指出这一点的用户,我删除了错误的示例。


2
您能解释一下为什么余弦指数更适合识别窃而不适合识别镜像部位吗?
dharm0us

我觉得这个答案的某些部分是不直观的。“例如,如果您有两个都具有10个属性的对象,则可能有100个属性。此外,它们具有所有10个共同的属性。在这种情况下,Jaccard索引将为1,余弦索引将为0.001。” 这将转化为cosine_similarity(10*[1]+90*[0], 10*[1]+90*[0])。当然,这里的余弦相似度也将为1,因为这两个度量都忽略了两个向量中均为零的那些元素。
fsociety

1
这个答案关于余弦相似度是错误的,请考虑user18596的答案
Robin

“简而言之,在余弦相似度中,公共属性的数量除以可能属性的总数”->这是完全错误的。该符号定义矢量点积和规范。
肖恩·欧文

22

我没有任何评论,因为我没有任何状态,但是检查的答案是错误的,以及未回答问题。∥A∥表示A的L2范数,即向量在欧几里得空间中的长度,而不是向量A的维数。换句话说,您不计算0位,而是将1位相加并取平方根。因此,长度为100的向量的10个属性的示例也是错误的。抱歉,对于何时应使用哪个指标,我没有真正的答案,但我不能只是让不正确的答案受到挑战。


2
你完全正确。如此之多的人都投票赞成一个不正确的答案,真是可惜。维基百科文章中描述的余弦相似度未考虑0位。en.wikipedia.org/wiki/Cosine_similarity
neelshiv

11

Jaccard相似性用于两种类型的二进制情况:

  1. 对称,其中1和0具有同等重要性(性别,婚姻状况等)
  2. 不对称,其中1和0的重要性不同(测试为阳性)

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

另一个区别是1-雅卡德系数可以用作相异度或距离量度,而余弦相似度则没有这样的构造。相似的是分类法中使用的Tonimoto距离。


为什么只有Jaccard可以用作差异度量?我的理解是,这cosine是一种不同但并非无效的措施。
javadba

3

如上所述,检查的答案是错误的。

一种b一种

然后通过给出Jaccard相似度

Ĵ一种=|一种||一种|=|一种||一种|+|一种-|+|-一种|

C一种=|一种||一种|||=|一种||一种|+|一种-||一种|+|-一种|

一些比较:

  • 这里的分子是相同的。
  • |一种|||在jaccard中,但在几何上在余弦中。
  • |一种|||

我还没有一个明显的直觉来判断哪一个应该优先于另一个,除了正如Vikram Venkat所指出的那样,1-雅卡德(Jaccard)对应于一个真实的指标,与余弦不同。余弦自然扩展到实值向量。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.