马氏距离
马氏距离(Mahalanobis distance)是度量学习中一种常用的距离指标,同欧氏距离、曼哈顿距离、汉明距离等一样被用作评定数据之间的相似度指标。但却可以应对高维线性分布的数据中各维度间非独立同分布的问题。
定义
数据点 x ∈ R m , y ∈ R m x\in R^m, y\in R^m x∈Rm,y∈Rm之间的马氏距离为:
d M = ( x − y ) T Σ − 1 ( x − y ) d_{M} = \sqrt{(x-y)^T\Sigma^{-1}(x-y)} dM=(x−y)TΣ−1(x−y)其中 Σ ∈ R m × m Σ\in R^{m\times m} Σ∈Rm×m是多维随机变量的协方差矩阵,如果协方差矩阵是单位向量,也就是各维度独立同分布,马氏距离就变成了欧氏距离。如果是单个数据点 x x x, 则马氏距离为: d M = ( x − μ ) T Σ − 1 ( x − μ ) d_{M} = \sqrt{(x-\mu)^T\Sigma^{-1}(x-\mu)} dM=(x−μ)TΣ−1(x−μ), 其中 μ ∈ R m \mu \in R^m μ∈Rm为样本均值。
观察
- 两个变量拥有不同的单位标准,也就是有不同的scale。在普通的欧氏距离中,这将会算作相同的差距。
- 先做归一化来消除这种维度间scale不同的问题,但是样本分布也会影响分类。
动机
只需要将变量按照主成分进行旋转,让维度间相互独立,然后进行标准化,让维度同分布。由主成分分析可知,由于主成分就是特征向量方向,每个方向的方差就是对应的特征值,所以只需要按照特征向量的方向旋转,然后缩放特征值倍就可以了。
推导
-
旋转数据至主成分方向(特征向量的方向), F = ( F 1 , F 2 , ⋯ , F m ) F=(F_1, F_2, \cdots, F_m) F=(F1,F2,⋯,Fm)为新的坐标,