分享
如何理解马氏距离,多维Mahalanobis距离是否要用到“互相关张量”来进行描述?
如题,现在我知道数据分析界的马氏距离是考虑到两个变量之间的相关性然后求出它的距离的,在我们的数据挖掘导论课上提到马氏距离实际上是这样的:两个互相关变量包含两个维度,它俩之间的“距离”定义为,其中两维度构成的平面上“回归椭圆(不知道这样说对不对)”的距离,请问互相关矩阵和椭圆之间是怎么建立起联系的,也就是不清楚互相关性是怎么拥有“到椭圆的距离”这一几何解释的?还有就是一般讨论的马氏距离是指的两个变量之间的“相关距离”,如果涉及到两个多维变量之间的“距离”计算,则是不是还要发展某种“互相关张量”来进行描述?比如使用王赟回答中提到的那个例子,两个人这是两个变量,两人各自的身高、体重,是两个维度,但如果我们再加一个维度,比如说腰围,这样两个身高、体重、腰围三维点之间的马氏距离怎么计算?如果再加上比如胸围、臀围、体脂率(维度之间都相关),这种多维的变量之间马氏距离怎么计算?
回复 ( 5 )
一般谈到马氏距离是不能脱离开样本分布的,题主说的“互相关张量”应该指的是样本的协方差矩阵,这个也是和样本分布密切相关的,来看个例子:
左下角在二维空间中由一个分布产生的方块样本,这个分布的一条等高线如虚线的椭圆框所示,图中还有一个不属于该分布的圆圈样本。这是是一个典型的欧式距离会把分布外样本算的更近的例子,比如把绿色和蓝色样本单拎出来,就是左上角的图,蓝色小圆圈和中心的绿色方块更近了,这是因为单纯的欧式距离无法反应方块的分布。这种情况下,考虑用马氏距离。这里默认方块的分布可以由协方差矩阵很好描述(比如是个多维高斯分布),那对于任意两点x和y马氏距离的计算就是下面:
就是协方差矩阵,这样计算出的距离就像 @王赟 Maigo 说的一样不再是各向同性,对于方块的分布而言有个良好性质是分布的等高线上到中心的马氏距离相等了,因为马氏距离包含了方块本身分布的信息。进一步来理解,马氏距离可以表示为下面这样:
其实等效于做了个线性变换,然后在变换后的空间中求了下欧式距离,其中可以表示为,其中是个对角矩阵,对角线元素分别为协方差矩阵本征值的倒数开方,的行向量就是协方差矩阵的本征值。无论多少维,协方差矩阵的计算都是一样的,可以参考wiki上协方差矩阵的定义:Covariance matrix,为什么协方差矩阵就是这个椭圆的理解可以参考另一个答案主成分分析PCA算法:为什么去均值以后的高维矩阵乘以其协方差矩阵的特征向量矩阵就是“投影”? – 達聞西的回答 – 知乎
你的题目描述中,“变量”与“维度”两个词的使用比较混乱。
在马氏距离的语境中,“变量”可以有两种含义。
举个例子,一个人可以有身高、体重等多个属性,这些属性可以看成“变量”。另一方面,集这些属性于一身的人可以用一个向量表示,这个向量也可以看成“变量”。
为清晰起见,下文中把前者称为“维度”,后者称为多维空间中的“点”。
在讨论马氏距离之前,先看一下熟悉的欧氏距离。
欧氏距离是定义在两个点之间的,并没有“多个点之间的距离”一说,除非你指的是两两之间的距离,这样还是两个点之间的距离。
而维度的多少,并不会使得欧氏距离的公式更复杂。
欧氏距离背后的思想,就是认为多维空间是各向同性的,往哪个方向走某一距离,意义都一样。
而马氏距离与欧氏距离的唯一区别,就是它认为空间是各向异性的。
各向异性的具体参数,是由一个协方差矩阵表示的。
把这个协方差矩阵考虑成一个多维正态分布的协方差阵,则这个分布的密度函数的等高线,就是你说椭圆。
从椭圆中心到椭圆上各点的马氏距离,都是相等的。
椭圆的各个轴的方向,是协方差阵的特征向量,各个轴的长度正比于协方差阵的特征值的平方根。
马氏距离同样是定义在两个点之间的。维度的增加,只是增大了协方差矩阵的大小,但它还是二维的,不会变成张量。
最近也碰到这个概念 看了一些定义感觉有点理解。比较naive的理解:假设现在有两个正态分布,其均值分别是A和C,现在我们要看点B是属于A或者是C,B为AC的中点,因此可知B到A和C的欧式距离是相等的。由马氏距离的定义:sqrt[(x-μ)’Σ^(-1)(x-μ) ] 。
它比欧氏距离多除了一个方差,如果到高维空间,则是多除了一个协方差矩阵,有上图显然可知A的方差比C的大,因此则有AB的马氏距离比BC的马氏距离小。十分想当然的理解:C的方差那么小,它的绝大部分数据都分布在均值附近,分布到B处的可能性显然是比A要小的,所以通过马氏距离就可以把相关性考虑进去,而不简单地只考虑欧式距离。。
关于多维的马氏距离:将之前用的方差换成协方差阵(如下图下半部分)
关于椭球的说法:是由于坐标标准化时的方程正好是椭球方程(如下图)
小伙,c相比于A的的方差是小….