《机器学习-周志华》学习笔记
机器学习中的距离
距离度量的基本性质
对函数 d i s t ( ⋅ , ⋅ ) dist(\cdot,\cdot) dist(⋅,⋅) ,若它是一个“距离度量”,则其满足以下性质:
- 非负性: d i s t ( x i , x j ) ≥ 0 dist(x_i,x_j) \ge 0 dist(xi,xj)≥0;
- 同一性: d i s t ( x i , x j ) = 0 , 当且仅当 x i = x j dist(x_i,x_j) = 0,\text{当且仅当}x_i=x_j dist(xi,xj)=0,当且仅当xi=xj;
- 对称性: d i s t ( x i , x j ) = d i s t ( x j , x i ) dist(x_i,x_j) = dist(x_j,x_i) dist(xi,xj)=dist(xj,xi);
- 直递性: d i s t ( x i , x j ) ≤ d i s t ( x i , x k ) + d i s t ( x k , x j ) dist(x_i,x_j) \le dist(x_i,x_k)+dist(x_k,x_j) dist(xi,xj)≤dist(xi,xk)+dist(xk,xj).
直递性常被称为“三角不等式”
闵可夫斯基距离(Minkowski distance)
给定样本
x
i
=
(
x
i
1
;
x
i
2
;
⋯
 
;
x
i
n
)
x_i=(x_{i1};x_{i2};\cdots ;x_{in})
xi=(xi1;xi2;⋯;xin) 和
x
j
=
(
x
j
1
;
x
j
2
;
⋯
 
;
x
j
n
)
x_j=(x_{j1};x_{j2};\cdots ;x_{jn})
xj=(xj1;xj2;⋯;xjn) ,闵可夫斯基距离为:
d
i
s
t
m
k
(
x
i
,
x
j
)
=
∥
x
i
−
x
j
∥
p
=
(
∑
u
=
1
n
∣
x
i
u
−
x
j
u
∣
p
)
1
p
dist_{mk}(x_i,x_j)=\|x_i-x_j\|_p=\left( \sum_{u=1}^{n}|x_{iu}-x_{ju}|^p\right)^{\frac{1}{p}}
distmk(xi,xj)=∥xi−xj∥p=(u=1∑n∣xiu−xju∣p)p1
对 p ≥ 1 p\ge 1 p≥1 ,公式满足距离度量的所有性质
当
p
=
1
p=1
p=1 时,闵可夫斯基距离即为曼哈顿距离(Manhattan distance),此时有
d
i
s
t
m
a
n
(
x
i
,
x
j
)
=
∥
x
i
−
x
j
∥
1
=
∑
u
=
1
n
∣
x
i
u
−
x
j
u
∣
dist_{man}(x_i,x_j)=\|x_i-x_j\|_1= \sum_{u=1}^{n}|x_{iu}-x_{ju}|
distman(xi,xj)=∥xi−xj∥1=u=1∑n∣xiu−xju∣
曼哈顿距离也称为
“城市街区距离”(City Block distance)
。
当
p
=
2
p=2
p=2 时,闵可夫斯基距离即为欧式距离(Euclidean distance),此时有
d
i
s
t
e
d
(
x
i
,
x
j
)
=
∥
x
i
−
x
j
∥
2
=
∑
u
=
1
n
∣
x
i
u
−
x
j
u
∣
p
dist_{ed}(x_i,x_j)=\|x_i-x_j\|_2= \sqrt{\sum_{u=1}^{n}|x_{iu}-x_{ju}|^p}
disted(xi,xj)=∥xi−xj∥2=u=1∑n∣xiu−xju∣p
当
p
→
∞
p\to\infty
p→∞ 时,闵可夫斯基距离即为切比雪夫距离(Chebyshev distance),此时有
d
i
s
t
c
d
(
x
i
,
x
j
)
=
∥
x
i
−
x
j
∥
∞
=
l
i
m
p
→
∞
(
∑
u
=
1
n
∣
x
i
u
−
x
j
u
∣
p
)
1
p
dist_{cd}(x_i,x_j)=\|x_i-x_j\|_{\infty}=lim_{p\to\infty} \left( \sum_{u=1}^{n}|x_{iu}-x_{ju}|^p\right)^{\frac{1}{p}}
distcd(xi,xj)=∥xi−xj∥∞=limp→∞(u=1∑n∣xiu−xju∣p)p1
闵氏距离的缺点:
- 将各个分量的量纲(scale),也就是“单位”相同的看待了;
- 未考虑各个分量的分布(期望,方差等)可能是不同的。
说明:
机器学习中常将属性划分为连续属性(continuous attr)
和离散属性(categorical attr)
,在讨论距离计算时,属性上是否定义了序
关系更为重要,例如定义域 { 1 , 2 , 3 } \{1,2,3\} {1,2,3}的离散属性与连续属性的性质更接近一些,能直接在属性上计算距离:“1”与“2”比较接近、与“3”比较远,这样的属性称为有序属性(ordinal attr)
;而定义域为 { 飞机,火车,轮船 } \{\text{飞机,火车,轮船}\} {飞机,火车,轮船}这样的离散属性不能直接在属性值上计算距离,称为无序属性(non-ordinal attr)
显然,
闵可夫斯基距离可用于有序属性
VDM(Value difference Metric)
当样本属性为无序属性时,使用VDM距离。属性u上两个离散值a与b之间的VDM距离为
V
D
M
p
(
a
,
b
)
=
∑
i
=
1
k
∣
m
u
,
a
,
i
m
u
,
a
−
m
u
,
b
,
i
m
u
,
a
∣
p
VDM_p(a,b)=\sum_{i=1}^k|\frac{m_{u,a,i}}{m_{u,a}}-\frac{m_{u,b,i}}{m_{u,a}}|^p
VDMp(a,b)=i=1∑k∣mu,amu,a,i−mu,amu,b,i∣p
其中:
- m u , a m_{u,a} mu,a 表示在属性u上取值为a的样本数
- m u , a , i m_{u,a,i} mu,a,i 表示在第i个样本簇中在属性u上取值为a的样本数
- k k k为样本簇数
混合属性的距离计算
混合属性的距离计算可以将 闵可夫斯基距离 和 VDM 结合。
假定有
n
c
n_c
nc个有序属性,
n
−
n
c
n-n_c
n−nc个无序属性,令有序属性排列在无序属性之前,则
M
i
n
k
o
v
D
M
p
(
x
i
,
x
j
)
=
(
∑
u
=
1
n
c
∣
x
i
u
−
x
j
u
∣
p
+
∑
u
=
u
c
+
1
n
V
D
M
p
(
x
i
u
,
x
j
u
)
)
1
p
MinkovDM_p(x_i,x_j)=\left( \sum_{u=1}^{n_c}|x_{iu}-x_{ju}|^p+\sum_{u=u_c+1}^{n} VDM_p(x_{iu},x_{ju})\right)^{\frac{1}{p}}
MinkovDMp(xi,xj)=(u=1∑nc∣xiu−xju∣p+u=uc+1∑nVDMp(xiu,xju))p1
加权距离(weighted distance)
当样本空间中不同属性的重要性不同时,可使用加权距离
以加权闵可夫斯基距离为例:
d
i
s
t
w
m
k
(
x
i
,
x
j
)
=
(
w
1
⋅
∣
x
i
1
−
x
j
1
∣
p
+
⋯
+
w
n
⋅
∣
x
i
n
−
x
j
n
∣
p
)
1
p
dist_{wmk}(x_i,x_j)=\left( w_1\cdot|x_{i1}-x_{j1}|^p+\cdots+ w_n\cdot|x_{in}-x_{jn}|^p\right)^{\frac{1}{p}}
distwmk(xi,xj)=(w1⋅∣xi1−xj1∣p+⋯+wn⋅∣xin−xjn∣p)p1
其中:
权重 w i ≥ 0 ( i = 1 , 2 , ⋯   , n ) w_i\ge0(i=1,2,\cdots,n) wi≥0(i=1,2,⋯,n) 表示不同属性的重要性,通常 ∑ i = 1 n w i = 1 \sum_{i=1}^nw_i=1 ∑i=1nwi=1.
最后
通常是基于某种形式的距离来定义“相似度度量”(similarity measure)
,距离越大,相似度越小。
然而,用于相似度度量的距离未必一定要满足距离度量的所有基本性质,尤其是直递性。
此时不满足某些性质的距离称为“非度量距离”(non-metric distance)
基于数据样本来确定合适的距离计算式,可通过距离度量学习(distance metric learning)
来实现
博客内容是我个人的学习笔记, 由于水平有限, 肯定有不少错误或遗漏. 若发现, 欢迎留言告知, 谢谢!
另,欢迎邮件与我探讨交流Email:ice-melt@outlook.com