马氏距离

一.简介

一个好的距离衡量方法应该可以很好地表示数据之间的相似性,即距离近点的数据拥有更高的相似性。当数据以向量进行表示,每个维度的值代表不同属性时,好的数据表示应该:

1)消除量纲的影响。

2)考虑不同维度方差的影响。

3)考虑不同维度之间的相关性。

前两个点通过标准化操作很容易做到,而第三点就相对复杂一点。接下来一步一步地基于第三个出发点,进行马氏距离的推导。

假设数据集的向量表示为X\in R^{m*n},共n条数据,每条数据由一个m维向量表示。X的协方差矩阵\sum\nolimits_{X},均值为\mu _{X} 。为了消除不同维度属性的相关性,通过一个矩阵Q^T对X进行坐标表换,将数据映射到新的坐标系下(Q^T中的行向量为新的坐标轴),记为Y=Q^TX,在新的坐标系下,Y的向量表示中,不同维度之间是相互独立的,因此Y的协方差矩阵应该是一个对角矩阵(除对角线元素外,其余元素均为0)。我们先求解Y的均值,很显然,应该是\mu _{Y}=Q^T\mu _{X},接着求Y的协方差矩阵:

                                        \sum\nolimits_{Y}=\frac{1}{n} [Y-\mu _{Y}][Y-\mu _{Y}]^T

                                     =\frac{1}{n} [Q^T(X-\mu _{X})][Q^T(X-\mu _{X})]^T

                                     =\frac{1}{n} Q^T(X-\mu _{X})(X-\mu _{X})^TQ

                                      =Q^T\sum\nolimits_{X}Q

从这里可以发现,当Q是\sum\nolimits_{X}特征向量组成的矩阵时,\sum\nolimits_{Y}一定是对角矩阵。由于\sum\nolimits_{X}对称矩阵,因此肯定可以通过特征分解得到Q,且Q是正交矩阵。正交矩阵有一个很好的性质,即Q^{-1}=Q^T,在后续的推导中会用到。

到目前为止,我们已经完成了第三点,即考虑数据中不同维度之间的相关性,接着我们通过对变量Y进行标准化来实现第一点和第二点。

y^{’}=\sum\nolimits_{Y}^{-\frac{1}{2} }(Y-\mu _{Y})

      =(Q^T\sum\nolimits_{X}Q)^{-\frac{1}{2} }Q^T(X-\mu _{X})

终于,我们得到了一个“完美”的数据表示y^{’},接着可以通过向量内积来衡量距离了。y^{’}到原点的距离为:

这就是马氏距离。要计算两个数据点之间的马氏距离也很简单,设两个点为x_{1}、x_{2},首先将他们映射到新的坐标系,并完成标准化,得到

两者之差为:

接着可以通过向量内积来衡量距离了,参考公式3,y_{d}到原点的距离\sqrt{y^T_{d}y_{d}} 为:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容