【问题标题】:How to compute a distance between two byte arrays?如何计算两个字节数组之间的距离?
【发布时间】:2013-06-26 02:14:07
【问题描述】:

我需要计算两个长度相同的字节数组之间的距离。特别是,我正在寻找一种方法来获得具有以下特征的距离:

  • 如果两个数组非常相似,那么距离应该很小;
  • 否则,距离应该很大。

基本上,我正在寻找一种方法来衡量两个数组之间的差异。

更新:按照建议,我提供以下有关字节数组内容的附加信息。字节序列包含图像的特征,因此图像被划分为小区域,并为每个区域测量一些颜色信息(每个字节编码与单个区域相关的信息):当在一个字节内设置一个位时,那么这意味着该区域内存在给定的特征。

因此,给定两个字节序列,我想使用合适的距离度量进行比较。我读到了 Bhattacharyya 距离,但我不知道如何在这种情况下应用它,所以我想知道是否还有其他距离度量来比较两个字节数组。

【问题讨论】:

  • 你能提供更多关于数组中数据类型的信息吗?或者也许有一些示例显示您认为相似的数组类型?
  • 是的,我们需要更多信息。否则人们只会说“我猜是欧几里得距离?”

标签: algorithm language-agnostic statistics distance


【解决方案1】:

按照复杂度的顺序,

a L1 = 总和 | xi - yi |

或 L2 = 总和 | xi - yi |^2

【讨论】:

    【解决方案2】:

    您可以为此使用欧几里得距离。基本上,您将数组中每对元素之间的差的平方相加,然后从该总和中提取平方根。

    http://en.wikipedia.org/wiki/Euclidean_distance

    但是,还有其他距离指标可以更好地应用于您的数据,例如 Pearson 相关性、余弦相似度、汉明距离等。

    【讨论】:

      猜你喜欢
      • 2015-02-25
      • 2023-04-09
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      • 2019-02-16
      • 2016-07-01
      • 1970-01-01
      • 2021-05-15
      相关资源
      最近更新 更多