UTF8gbsn
本文主要介绍马氏距离(Mahalanois distance). 与欧拉距离不同,
马氏距离主要用在判断一个样本是否属于某个分布.
定义
假设我们有一个采样数据x = { x 1 , x 2 , ⋯ , x n } T \mathbf{x}=\{x_1,x_2, \cdots, x_n\}^Tx={x1,x2,⋯,xn}T,
而有一个已知的分布P PP,
这个分布P PP的均值为μ = ( μ 1 , μ 2 , ⋯ , μ n ) T \mathbf{\mu}= \left( \mu_1, \mu_2, \cdots, \mu_n \right)^Tμ=(μ1,μ2,⋯,μn)T,
它的协方差矩阵为S SS.那么我们可以定义马氏距离D M ( x ) D_M(\mathbf{x})DM(x)为
D M ( x ) = ( x − μ ) T S − 1 ( x − μ ) D_M(\mathbf{x})=\sqrt{(\mathbf{x}-\mathbf{\mu})^TS^{-1}(\mathbf{x}-\mathbf{\mu})}DM(x)=(x−μ)TS−1(x−μ)
也就是说马氏距离越小, x ∈ P \mathbf{x}\in Px∈P的概率越大.
另外可以定义两个样本之间的距离为.
d ( x , y ) = ( x − y ) T S − 1 ( x − y ) d(\mathbf{x}, \mathbf{y})=\sqrt{(\mathbf{x}-\mathbf{y})^TS^{-1}(\mathbf{x}-\mathbf{y})}d(x,y)=(x−y)TS−1(x−y)
马氏距离越小, 则两个样本之间的距离越小.
直观解释
这里我们使用三个层次来做直观解释. 层层递进来解释这个马氏距离.
1
当你有一个样本x \mathbf{x}x, 并且知道分布P PP的μ \mathbf{\mu}μ时.
自然而然的想到一个方法来判断x \mathbf{x}x是否是∈ P \in P∈P的.
∣ ∣ x − μ ∣ ∣ 2 2 ⩽ τ ||\mathbf{x}-\mathbf{\mu}||_2^2\leqslant \tau∣∣x−μ∣∣22⩽τ
这个方法就是使用简单的欧式距离来判断样本与均值之间的距离.但是这有一个缺点,
也就是说的有的分布范围比较大,
有的比较小.因为分布的方差不一样.画个图形来表示就是,
以μ \mathbf{\mu}μ为中心画一个圆. 方差小的分布, 圆半径比较小,
方法大的分布,
圆半径比较大.不同的分布要采用不同的τ \tauτ.于是我们提出改进2.
2
使用
x − μ σ ⩽ τ \frac{\mathbf{x}-\mathbf{\mu}}{\sigma}\leqslant \tauσx−μ⩽τ
这样就可以弥补方差带来的不同差异.但是这里仍然有一个问题.
上式表示的分布需要在各个维度上具有相同的σ \sigmaσ,
如果分布是圆而是一个椭圆.则上面的方法就会失效.所以最后就引入了马氏距离.
3
使用马氏距离,
来度量样本是否属于某个分布.这里稍微解释下S − 1 S^{-1}S−1.不过这种解释不是严谨和准确.
如果有人能更好的解释请留言.
协方差矩阵S SS, 表征数据的分散程度.(主对角线)
S − 1 S^{-1}S−1,表征数据的紧实程度.(主对角线)
应用
现在我们可以来用马氏距离来分类了.先我们对于不同的类别数据有不同的S i , μ i S_i,\mathbf{\mu}_iSi,μi,
我们可以分别计算
i ∗ = arg min i ( x − μ i ) T S i − 1 ( x − μ i ) i^*=\underset{i}{\arg\min}\sqrt{(\mathbf{x}-\mathbf{\mu}_i)^TS_i^{-1}(\mathbf{x}-\mathbf{\mu}_i)}i∗=iargmin(x−μi)TSi−1(x−μi)
最后可得P i P_iPi就是x \mathbf{x}x所处的分类.