如何评估两个直方图的相似性?


33

给定两个直方图,我们如何评估它们是否相似?

仅看两个直方图就足够了吗?简单的一对一映射存在以下问题:如果直方图略有不同并且略有偏移,那么我们将无法获得所需的结果。

有什么建议么?


2
“相似”是什么意思?例如,卡方检验和KS检验可测试两个直方图是否接近相同。 但是“相似”可能意味着“具有相同的形状”,而忽略了位置和/或比例的任何差异。 您能说明您的意图吗?
ub

Answers:


8

最近的一篇论文可能值得一读:

Cao,Y.Petzold,L .化学反应系统随机模拟中的精度限制和误差测量,2006年。

尽管本文的重点是比较随机仿真算法,但本质上主要的思想是如何比较两个直方图。

您可以从作者的网页访问pdf


嗨,它的好论文,thanx提供了pdf链接..我一定会通过这篇论文..
Mew 3.4

12
如果您总结了本文的要点,那么最好不要提供参考。链接会消失,因此将来您的答案可能对本期刊的非订阅者毫无用处(并且绝大多数人口是非订阅者)。

27

两个直方图之间有很多距离量度。您可以在以下位置阅读这些措施的良好分类:

K. Meshgi和S.Ishii,Proc.National.Proc.Natl.Acad.Sci.USA中,“用网格扩展颜色的直方图以提高跟踪精度”。2015年5月,日本东京,MVA'15会议开幕。

为了方便起见,此处列出了最受欢迎的距离功能:

  • L0 或赫林格距离

DL0=ih1(i)h2(i)

  • L1,曼哈顿或城市街区距离

DL1=i|h1(i)h2(i)|

  • L=2或欧氏距离

DL2=i(h1(i)h2(i))2

  • 大号或Chybyshev距离

DL=maxi|h1(i)h2(i)|

  • L p或分数距离(Minkowski距离族的一部分)p

DLp=(i|h1(i)h2(i)|p)1/p0<p<1

  • 直方图相交

D=1i(min(h1(i),h2(i))min(|h1(i)|,|h2(i)|)

  • 余弦距离

DCO=1ih1(i)h2(i)

  • 堪培拉距离

DCB=i|h1(i)h2(i)|min(|h1(i)|,|h2(i)|)

  • 皮尔逊相关系数

DCR=i(h1(i)1n)(h2(i)1n)i(h1(i)1n)2i(h2(i)1n)2

  • 柯尔莫哥洛夫-史密尔诺夫(Kolmogorov-Smirnov Divergance)

DKS=maxi|h1(i)h2(i)|

  • 比赛距离

DMA=i|h1(i)h2(i)|

  • Cramer-von Mises距离

DCM=i(h1(i)h2(i))2

  • χ2统计

Dχ2=i(h1(i)h2(i))2h1(i)+h2(i)

  • Bhattacharyya距离

DBH=1ih1(i)h2(i)和hellinger

  • 平方和弦

DSC=i(h1(i)h2(i))2

  • 库尔贝克-利勃勒分差

DKL=ih1(i)logh1(i)m(i)

  • 杰弗里发散

DJD=i(h1(i)logh1(i)m(i)+h2(i)logh2(i)m(i))

  • 地球移动者的距离(这是将距离分类信息A嵌入距离中的运输距离的第一个成员,有关更多信息,请参阅上述论文或Wikipedia条目。

DEM=minfiji,jfijAijsumi,jfij jfijh1(i),jfijh2(j),i,jfij=min(ih1(i)jh2(j))fijij

  • 二次距离

DQU=i,jAij(h1(i)h2(j))2

  • 二次Chi距离

DQC=i,jAij(h1(i)h2(i)(cAci(h1(c)+h2(c)))m)(h1(j)h2(j)(cAcj(h1(c)+h2(c)))m)000

我的GitHub存储库中提供了其中一些距离的Matlab实现:https : //github.com/meshgi/Histogram_of_Color_Advancements/tree/master/distance 您也可以搜索Yossi Rubner,Ofir Pele,Marco Cuturi和Haibin Ling之类的人更先进的距离。

更新:有关距离的替代解释出现在文献中的各处,因此为了完整起见,在此列出它们。

  • 堪培拉距离(另一个版本)

DCB=i|h1(i)h2(i)||h1(i)|+|h2(i)|

  • DL0

DBC=12ih1(i)=h2(i)ih1(i)+ih2(i)

  • 雅卡德距离(即联合的交集,另一个版本)

DIOU=1imin(h1(i),h2(i))imax(h1(i),h2(i))


欢迎来到我们的网站!感谢您的贡献。
ub


谢谢,列表很棒,但是它不允许创建直方图的比较运算符,例如hist1 < hist2
Olha Pavliuk

22

这个问题的标准答案是卡方检验。KS测试适用于未绑定的数据,而不适用于已绑定的数据。(如果您有未绑定的数据,则请务必使用KS风格的测试,但是如果您只有直方图,则不适合使用KS测试。)


您将KS检验理解为有关基础数据分布的假设检验是正确的,但您认为KS检验不适合直方图,但是我认为没有理由认为KS 统计量不能很好地衡量任何两个相同性直方图。
whuber

解释为什么Kolmogorov-Smirnov检验不适用于合并数据。
naught101

这在图像处理中可能不如在统计拟合评估中有用。通常,在图像处理中,数据的直方图被用作图像区域的描述符,目标是直方图之间的距离反映出图像块之间的距离。关于用于获取直方图的基础图像数据的一般总体统计信息,可能知之甚少,甚至一无所知。例如,当使用定向梯度直方图时,基础人口统计信息将根据图像的实际内容而有很大不同。
ely

1
Stochtastic回答了naught101的问题:stats.stackexchange.com/a/108523/37373
Lapis

10

您正在寻找Kolmogorov-Smirnov检验。不要忘记将条形高度除以每个直方图的所有观测值之和。

注意,例如,如果分布的均值相对于彼此偏移,则KS检验也会报告差异。如果直方图沿x轴的平移在您的应用程序中没有意义,则可能需要首先从每个直方图中减去平均值。


1
减去均值将更改KS统计的零分布。@David Wright还是提出了反对将KS测试应用于直方图的有效反对意见。
whuber

7

正如David的答案所指出的,由于KS检验假定连续分布,因此对于合并数据,必须进行卡方检验。关于为什么KS检验不合适(naught101的评论),在应用统计文献中对此问题进行了一些讨论,值得在此提出。

P(x)=19, (0x9)
P(x)=110j=09δ(xj)

-1

您可以计算两个直方图之间的互相关(卷积)。这将考虑到轻微的翻译。


1
这可能会因为它太短而被自动标记为低质量。目前,按照我们的标准,这更多是评论而不是答案。你可以扩大吗?我们也可以将其转化为评论。
gung-恢复莫妮卡

由于直方图是相当不稳定的数据表示形式,并且因为它们不能单独表示使用高度(使用区域)的概率,因此除非提供了更具体的指导,否则可能会合理地质疑这种方法的适用性,通用性或实用性。
ub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.