前言
本篇记录一下常用的数据距离度量方法,欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,马氏距离,兰氏距离。
欧式距离
最常用的距离,用于衡量欧式空间中两点间的距离,等同于两个同维向量之差的2-范数,也称为L2距离:
d
(
x
,
y
)
=
∑
i
=
1
n
(
x
i
−
y
i
)
2
=
∣
∣
x
−
y
∣
∣
2
d(x, y) = \sqrt {\sum_{i=1}^{n}(x_i - y_i)^2} = ||x-y||_2
d(x,y)=i=1∑n(xi−yi)2=∣∣x−y∣∣2
标准欧式距离
标准欧式距离是在存在大量样本点时,通过数据标准化后再计算欧式距离:
d
(
x
,
y
)
=
∑
i
=
1
n
(
(
x
i
−
μ
i
)
−
(
y
i
−
μ
i
)
s
i
)
2
d(x, y) = \sqrt {\sum_{i=1}^{n} (\frac {(x_i - \mu_i )- (y_i- \mu_i)}{s_i})^2}
d(x,y)=i=1∑n(si(xi−μi)−(yi−μi))2
曼哈顿距离
等同于两个同维向量之差的1-范数,也称为L1距离:
d
(
x
,
y
)
=
∑
i
=
1
n
∣
x
i
−
y
i
∣
=
∣
∣
x
−
y
∣
∣
1
d(x, y) = \sum_{i=1}^{n}|x_i - y_i| = ||x-y||_1
d(x,y)=i=1∑n∣xi−yi∣=∣∣x−y∣∣1
闵氏距离
等同于两个同维向量之差的p-范数:
d
(
x
,
y
)
=
∑
i
=
1
n
∣
x
i
−
y
i
∣
p
p
=
∣
∣
x
−
y
∣
∣
p
d(x, y) = \sqrt [^p] {\sum_{i=1}^{n}|x_i - y_i|^p} {}= ||x-y||_p
d(x,y)=pi=1∑n∣xi−yi∣p=∣∣x−y∣∣p
切比雪夫距离
等同于两个同维向量之差的无穷范数:
d
(
x
,
y
)
=
max
(
∣
x
i
−
y
i
∣
)
=
∣
∣
x
−
y
∣
∣
∞
d(x, y) = \max({|x_i-y_i|})=||x-y||_\infin
d(x,y)=max(∣xi−yi∣)=∣∣x−y∣∣∞
兰氏距离
d ( x , y ) = ∑ i = 1 n ∣ x i − y i ∣ ∣ x i ∣ + ∣ y i ∣ d(x, y) = \sum_{i=1}^{n}\frac{|x_i - y_i|}{|x_i| + |y_i|} d(x,y)=i=1∑n∣xi∣+∣yi∣∣xi−yi∣
马氏距离
如果向量之间的某些维度具有相关性,欧式距离并不会考虑这些相关性。比如
x
1
,
x
3
x_1, x_3
x1,x3独立,
x
2
=
2
x
1
x_2=2x_1
x2=2x1,点(2, 4, 1)
与(3, 6, 1)
更近还是(1.5, 3, 1)
更近呢?如果使用欧式距离,必然点(1.5, 3, 1)
更近,但考虑到第0, 1维的函数关系,实际上应当把第二维拿掉再计算欧式距离,这时两点距离是相同的。
马氏距离通过协方差矩阵的逆来衡量各维度之间的关系(两维的协方差),并且去除了各维度自身的尺度影响(维度的方差):
d
(
x
,
y
)
=
(
x
−
y
)
T
Σ
−
1
(
x
−
y
)
d(x, y) = \sqrt {(x - y)^T \Sigma^{-1} (x-y)}
d(x,y)=(x−y)TΣ−1(x−y)