在Matlab中找到两个直方图之间的Bin相似度矩阵

时间:2014-08-17 08:16:23

标签: matlab histogram similarity

我们,

我想在Matlab中比较直方图对。我已经对这个问题进行了一些研究,因为我发现它非常大。我已将选项范围缩小到两种方法:

  1. 为数据创建GMM,并使用采样
  2. 通过Kullback-Liebler进行比较
  3. 我找到了一些直方图之间的高级卡方比较算法。该算法采用两个直方图,一个bin相似度矩阵和一个归一化因子。
  4. 我有一个非常技术性的问题:如何在Matlab中检索此bin相似度矩阵?两个独立箱柜之间的相似性如何定义?我似乎无法在任何地方找到适当的解释。

    谢谢

2 个答案:

答案 0 :(得分:0)

我从来没有听说过" bin相似性矩阵"并且搜索没有发现任何内容,所以我在这里告诉你如何比较直方图。

统计中的标准方法是使用Pearson's chi-squared statistic。但请注意,相关的假设检验假设两个分布中的一个是完全已知的,因此您无法使用它。您仍然可以使用统计量作为两种估计分布(直方图)的不相似度量。

如果您对直方图进行标准化,则它是概率分布的估计值,因此可以插入formula for Kullback–Leibler divergence

卡方统计和Kullback-Leibler分歧在两个论证中都不对称。您可以通过在两个方向上应用它来对称化两种度量,然后取均值。对于KL分歧,这是公认的variant

对于所有这些,您当然要确保使用相同的bin定义计算了两个直方图。此外,您的结果将在很大程度上取决于您使用的垃圾箱数量。

答案 1 :(得分:0)

对我来说,本文还不清楚如何计算bin相似度矩阵。 但是,描述它的论文代码可以在这里找到:

http://www.cs.huji.ac.il/~ofirpele/QC/

有一个名为:sift_bin_similarity_function.m的函数。 其中实现了计算bin相似度。