集合和多集合之间的 Jaccard 索引

机器算法验证 杰卡相似度
2022-04-17 13:25:51

我可以使用 Jaccard 索引来计算集合和多集合之间的相似度吗?

据我所知,Jaccard 定义为交集的大小除以样本集的并集大小,

J(A,B)=|AB|/|AB|

现在,如果我有一个集合 和一个多重集ss={special,words}mm={term,special,words,special}

如何使用 Jaccard 索引来考虑重复?

2个回答

您可以使用Generalized Jaccard Index,并假设集合实际上是一个多重集:s

如果是两个具有实数的向量,那么它们的 Jaccard相似系数定义为 x=(x1,x2,,xn)y=(y1,y2,,yn)xi,yi0

J(x,y)=imin(xi,yi)imax(xi,yi).

在这里,您可以将“vector”读作“multiset”,而x_i是multiset \mathbf x中元素ixi的计数ix

你想如何考虑重复?我缝了几种方法可以做到:

  1. 您可以忽略它,结果索引值为J(s,m)=2/3
  2. 您可以计算重复的单词,就好像它们是不同的单词一样。那么它将是 ,现在联合是 4 因为“特殊”在联合中出现了两次;J(s,m)=2/4
  3. 您可以计算具有不同权重的重复单词。例如 0.5, ,'special' 的权重为 1.5,第一次出现时为 1,第二次出现时为 0.5。J(s,m)=2/3.5

但我会说这取决于你想要做什么以及你如何解决你的问题。