jaccard数学公式表示的一种简单方法

A simple method of mathematical formula representation for jaccard

使用Jaccard公式有一些疑惑,比如维基百科的解释。下面应该是

jaccard_score([0 1 1], [1 1 1])
0.6666666666666666

根据杰卡德公式,计算方法为 intersection / (size of A + size of B - intersection)。所以,应该是 2/(3+3-2) = 2/4 = 0.5.

但显然不是这样的。谁能给出一个直接的公式计算方法得到这个0.66666666?

您对公式的解释有误; “A 的大小”是指集合的基数。数据 [0, 1, 1] 是集合 A 的布尔表示,其中宇宙由三个元素组成,值 '1' 表示哪个元素(来自宇宙)在集合 A 中。所以“大小的 A”,其中 A 由 [0, 1, 1] 表示,是 2.

公式如下: 交叉点/(A 的sum/size + B 的sum/size - 交叉点) 你的情况是:

2/(2 + 3 - 2) = 0.666

您将 A 的大小作为元素的长度,而它是总和。同样,对于 B 只是你的错误重叠了,因为长度和总和相同。