欧氏距离和马氏距离简介
By:Yang Liu
1.欧氏距离
在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。
计算公式:
D
(
X
,
Y
)
=
(
X
1
−
Y
1
)
2
+
(
X
2
−
Y
2
)
2
.
.
.
+
(
X
n
−
1
−
Y
n
−
1
)
2
+
(
X
n
−
Y
n
)
2
D(X,Y) = \sqrt {{{({X_1} - {Y_1})}^2} + {{({X_2} - {Y_2})}^2}... + {{({X_{n - 1}} - {Y_{n - 1}})}^2} + {{({X_n} - {Y_n})}^2}}
D(X,Y)=(X1−Y1)2+(X2−Y2)2...+(Xn−1−Yn−1)2+(Xn−Yn)2 。
Matlab计算距离使用pdist函数。若X是一个m×n的矩阵,则pdist(X)将X矩阵每一行作为一个n维行向量,然后计算这m个向量两两间的距离。
缺点:欧式距离将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求。没有考虑到总体变异对距离远近的影响。
2.马氏距离
马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个分布之间的距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是,它考虑到各种特性之间的联系。并且是与尺度无关的。可以看作是欧氏距离的一种修正,修正了欧式距离中各个维度尺度不一致且相关的问题。
计算公式:
D
(
X
)
=
(
X
−
μ
)
T
S
−
1
(
X
−
μ
)
D(X) = \sqrt {{{(X - \mu )}^T}{S^{ - 1}}(X - \mu )}
D(X)=(X−μ)TS−1(X−μ)
X表示样本向量,S表示协方差矩阵,u表示样本均值。
不同样本的马氏距离:
D
(
X
,
Y
)
=
(
X
−
Y
)
T
S
−
1
(
X
−
Y
)
D(X,Y) = \sqrt {{{(X - Y)}^T}{S^{ - 1}}(X - Y)}
D(X,Y)=(X−Y)TS−1(X−Y)
若协方差矩阵S是单位矩阵(各个样本向量之间独立同分布),则X与Y之间的马氏距离等于他们的欧氏距离。如果协方差矩阵为对角阵,则其也可称为正规化的欧氏距离。
Matlab计算马氏距离:
马氏距离的特点:
(1)量纲无关,排除变量之间的相关性的干扰;
(2)马氏距离的计算是建立在总体样本的基础上的,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;
(3)计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。
马氏距离的优点: 马氏距离不受量纲的影响,两点之间的马氏距离与原始数据的测量单位无关;由标准化数据和中心化数据计算出的二点之间的马氏距离相同。
马氏距离的缺点:夸大了变化微小的变量的作用;马氏距离的计算是不稳定的,不稳定的来源是协方差矩阵。