一.简介
一个好的距离衡量方法应该可以很好地表示数据之间的相似性,即距离近点的数据拥有更高的相似性。当数据以向量进行表示,每个维度的值代表不同属性时,好的数据表示应该:
1)消除量纲的影响。
2)考虑不同维度方差的影响。
3)考虑不同维度之间的相关性。
前两个点通过标准化操作很容易做到,而第三点就相对复杂一点。接下来一步一步地基于第三个出发点,进行马氏距离的推导。
假设数据集的向量表示为,共n条数据,每条数据由一个m维向量表示。X的协方差矩阵为,均值为 。为了消除不同维度属性的相关性,通过一个矩阵对X进行坐标表换,将数据映射到新的坐标系下(中的行向量为新的坐标轴),记为,在新的坐标系下,Y的向量表示中,不同维度之间是相互独立的,因此Y的协方差矩阵应该是一个对角矩阵(除对角线元素外,其余元素均为0)。我们先求解Y的均值,很显然,应该是,接着求Y的协方差矩阵:
从这里可以发现,当Q是的特征向量组成的矩阵时,一定是对角矩阵。由于是对称矩阵,因此肯定可以通过特征分解得到Q,且Q是正交矩阵。正交矩阵有一个很好的性质,即,在后续的推导中会用到。
到目前为止,我们已经完成了第三点,即考虑数据中不同维度之间的相关性,接着我们通过对变量Y进行标准化来实现第一点和第二点。
终于,我们得到了一个“完美”的数据表示,接着可以通过向量内积来衡量距离了。到原点的距离为:
这就是马氏距离。要计算两个数据点之间的马氏距离也很简单,设两个点为,首先将他们映射到新的坐标系,并完成标准化,得到
两者之差为:
接着可以通过向量内积来衡量距离了,参考公式3,到原点的距离为: