【问题标题】:Why don't we include 0 matches while calculating jaccard distance between binary numbers?为什么在计算二进制数之间的 Jaccard 距离时不包括 0 个匹配项?
【发布时间】:2023-12-22 17:59:02
【问题描述】:

我正在开发一个基于 Jaccard 距离的程序,我需要计算两个二进制位向量之间的 Jaccard 距离。我在网上看到了以下内容:

 If p1 = 10111 and p2 = 10011,

 The total number of each combination attributes for p1 and p2:

 M11 = total number of attributes where p1 & p2 have a value 1,
 M01 = total number of attributes where p1 has a value 0 & p2 has a value 1,
 M10 = total number of attributes where p1 has a value 1 & p2 has a value 0,
 M00 = total number of attributes where p1 & p2 have a value 0.
 Jaccard similarity coefficient = J = 
 intersection/union = M11/(M01 + M10 + M11) 
 = 3 / (0 + 1 + 3) = 3/4,

 Jaccard distance = J' = 1 - J = 1 - 3/4 = 1/4, 
 Or J' = 1 - (M11/(M01 + M10 + M11)) = (M01 + M10)/(M01 + M10 + M11)
 = (0 + 1)/(0 + 1 + 3) = 1/4

现在,在计算系数时,为什么“M00”不包括在分母中?谁能解释一下?

【问题讨论】:

标签: algorithm distance


【解决方案1】:

Jaccard 系数是非对称二元属性的度量,例如,项目的存在比不存在更重要的场景。

由于 M00 只处理缺席,我们在计算 Jaccard 系数时不考虑它。

例如,在检查是否存在疾病时,疾病的存在是更重要的结果。

希望对你有帮助!

【讨论】:

    【解决方案2】:

    A和B的提花指数为|A∩B|/|A∪B| = |A∩B|/(|A| + |B| - |A∩B|)。

    我们有:|A∩B| = M11,|A| = M11 + M10,|B| = M11 + M01。

    所以 |A∩B|/(|A| + |B| - |A∩B|) = M11 / (M11 + M10 + M11 + M01 - M11) = M11 / (M10 + M01 + M11)。

    这个维恩图可能会有所帮助:

    【讨论】:

    • 很抱歉,我无法理解:|A| = M11 + M10,|B| = M11 + M01 你能解释一下你是怎么得出这个结论的吗?
    • M11 是出现在 A 和 B 中的位数。M10 是出现在 A 中但不出现在 B 中的位数。它们的和是什么?
    • 如果您被代数或组合思维困住,绘制维恩图可能会有所帮助。
    • 为什么 A 和 B 的交集不包含 M00(标记为 M11),因为这确实代表了 A 和 B 具有相同元素的情况。还是公式本身不包含 M00 大小写?
    • 如何定义两个位向量之间的 Jaccard 索引?通常的想法是将位向量视为表示一组整数,如果设置了ith 位,则i 在集合中。但您似乎使用了不同的定义——也许您可以更准确地描述您使用的定义?
    最近更新 更多