概述
1马氏距离
马氏距离是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,是欧氏距离的一种推广。它通过协方差来计算两点之间距离,是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的相关性。先上两个图看下马氏距离与欧氏距离的区别。
上图左为欧氏距离,A和B到mu是一样的距离,上图右为马氏距离,A和B到mu也是一样的距离,这说明马氏距离的计算中考虑了在不同方向上尺度单位是不同的。比如机器学习中,不同特征之间的数据光看数值是没有意义的,需要结合量纲,而每个特征又具有很多量纲,比如身高的单位可以是厘米,也可以是米。那么不同特征之间该如何合理地统一处理呢?
马氏距离是在统计学中提出的,与多元高斯分布具有紧密联系。首先回顾一下概念,多元随机变量记为X=[x_1,x_2,...,x_D]^T,mu为均值向量,Sigma为协方差矩阵, 那么多元高斯分布N(mu,Sigma)为,
如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧式距离,如果协方差矩阵为对角阵,则其也可称为标准化的欧氏距离,即
2几何解释
为了更好地揭示马氏距离的几何意义,先对协方差矩阵作奇异值分解(SVD),因为协方差矩阵对称,所以就等价于特征值分解,同时也得到协方差矩阵的逆矩阵。也可以用别的分解,比如Cholesky分解等,但是SVD和特征值分解有个好处就是正交和缩放分离,更能显义。分解后得到,
相当于对X-mu作了旋转或旋转反射变换(矩阵U是正交矩阵,根据行列式正1或负1分为两种变换)得到Y,即
一般来说,马氏距离排除了量纲的影响,具有尺度无关性,即与数据的测量单位无关;同时也排除了特征之间相关性的干扰。
3离散形式
马氏距离是从多元高斯分布引出的,如果不是退化的情况,这里Sigma矩阵自然是可逆的,但是实际应用中,有时并不知道分布,那么这个矩阵哪里来?假设数据矩阵为X,即每行表示一次采样数据,每列对应一个特征,设总共N行,D列,即总共有N个D维的数据,一般需要N>D,否则下面的协方差矩阵矩阵将不可逆。此时协方差矩阵为,
4应用举例
最典型的就是根据距离作判别问题,即假设有n个总体,计算某个样品X归属于哪一类的问题。此时虽然样品X离某个总体的欧氏距离最近,但是未必归属它,比如该总体的方差很小,说明需要非常近才能归为该类。对于这种情况,马氏距离比欧氏距离更适合作判别。比如下图表示男女两类身高和体重的采样数据,假如男和女先验分布已知,可以用马氏距离判别新的数据。
5思考一下
1、实际应用中,协方差矩阵由离散数据计算而来,如果数据矩阵X(X^TX)的有些奇异值(特征值)为0,说明什么?该如何处理?
2、Sigma^-1的奇异值非零但非常小,那么会引起数值稳定性问题,该如何处理?
3、马氏距离有什么缺点?
4、试想马氏距离的推广,最简单的比如加权。
提示
比如通过PCA处理,将对应小特征值的特征丢弃是不是可以改善一下某些问题。或者通过如下方式改善,
最后
以上就是自然发箍为你收集整理的马氏距离的全部内容,希望文章能够帮你解决马氏距离所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复