马氏距离是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧式距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的),并且是尺度无关的(scale-invariant),即独立于测量尺度。
主要是针对马氏距离的计算,很多博客没有说清楚,进行进一步的细化
两个样本:
His1 = {3,4,5,6}His2 = {2,2,8,4}
它们的均值为:
U = {2.5, 3, 6.5, 5}
其中S(i,j)={[His1(i)-u(i)]*[His1(j)-u(j)]+[His2(i)-u(i)]*[His2(j)-u(j)]}/2
S(1,1 ) = {[Hist1(1) - u(1)] * [Hist1(1) - u(i)] + [Hist2(1) - u(1)] * [Hist2(1) - u(1)]}/2 s(1,1) = ((3-2.5)(3-2.5)+(2-2.5)*(2-2.5))/2 = 0.25 S(1,2 ) = {[Hist1(1) - u(1)] * [Hist1(2) - u(2)] + [Hist2(1) - u(1)] * [Hist2(2) - u(2)]}/2 s(1,2) = ((3-2.5)(4-3)+(2-2.5)*(2-3))/2 =(0.5*1 + (-0.5)*(-1)) /2 = 1/2 = 0.5协方差矩阵为:
S =
| 0.25 0.50 -0.75 0.50 |
|-0.75 -1.50 2.25 -1.50 |
| 0.50 1.00 -1.50 1.00 |
下一步就是求出逆矩阵S^(-1)
可以使用python的科学计算库scipy,计算逆矩阵
马氏距离 D=sqrt{[His1-His2] * S^(-1) * [(His1-His2)的转置列向量]}
原地址:http://54pe.iteye.com/blog/478242
文章来源: 马氏距离