二进制向量的距离度量

机器算法验证 分类数据 二进制数据 距离 相似之处
2022-03-25 00:54:11

我有由 1 和 0 组成的相同长度的向量。我试图找出它们有多相似。到目前为止,我使用汉明距离计算一个向量的总和,然后计算第二个向量的总和,这之间的差异就是天数的差异。使用 1 和 0 效果很好。

我的问题是它没有以任何方式反映向量的差异在哪里以及误差的方差是什么。我想过计算有多少 1 错位到下一个向量的 1 以及有多少 0 错位。它提供了更多信息,但仍然没有说明错误的方差。

向量用于及时表示房屋的占用情况,每1表示房屋被占用,0表示未占用。由此,我试图预测第二天的情况。

3个回答

似乎您正在寻找 Jaccard 距离或 Dice 相异度。

杰卡德距离:

1|AB||AB|

骰子差异:

12|AB||A|+|B|

完全相同,则它们都等于 0 ,如果它们完全不同,则它们都等于 0。然而,Jaccard 会更严厉地“惩罚”分歧。另请注意,骰子并不是真正的度量标准(不满足三角不等式),因此它可能无法满足您的需求。AB

适当的距离可能取决于数据的来源以及您要达到的目标,但这两个可能是一个好的开始。

杰卡德指数

索伦森-骰子指数

除了 Jaccard 和 Dice,我还取得了成功:

  • 余弦相似度:cos(θ)=uv||u||×||v||
    • 不是度量,只是相似性度量。如果需要度量,请参阅角度相似度。
  • Rajski 的距离:1H(u;v)H(u,v)
    • H(u;v)=互信息;H(u,v)=联合熵

有关二元相似性度量和距离的良好调查,请参阅本文

我用于类似问题的指标的快速摘要。如前所述,Jaccard 距离也很有用。距离度量定义在区间 [0,+∞] 上,0=identity,而相似性度量定义在 [0,1] 上,1=identity。

在此处输入图像描述

a = nb 向量 A 的正位

b = 矢量 B 的 nb 个正位

c = 矢量 A 和 B 之间的 nb 个公共正位

S = 相似度

D = 距离

Dice 和 Tanimoto 指标是单调的(这意味着您将获得完全相同的向量排序/排名([B,C,D,..]),您将通过使用这两个指标与参考向量 (A) 进行比较,尽管相似度值可能不同)。曼哈顿和欧几里得度量是单调的。余弦和谷本度量总是高度相关但不是严格单调的。

Tanimoto 是用于药物发现领域的参考指标,用于解决可能像您这样的问题。它唯一的问题是当您的向量包含很少的正位时,它会偏向于低值。