《机器学习-周志华》学习笔记
机器学习中的距离
距离度量的基本性质
对函数 dist(⋅,⋅)dist(\cdot,\cdot)dist(⋅,⋅) ,若它是一个“距离度量”,则其满足以下性质:
- 非负性:dist(xi,xj)≥0dist(x_i,x_j) \ge 0dist(xi,xj)≥0;
- 同一性:dist(xi,xj)=0,当且仅当xi=xjdist(x_i,x_j) = 0,\text{当且仅当}x_i=x_jdist(xi,xj)=0,当且仅当xi=xj;
- 对称性:dist(xi,xj)=dist(xj,xi)dist(x_i,x_j) = dist(x_j,x_i)dist(xi,xj)=dist(xj,xi);
- 直递性:dist(xi,xj)≤dist(xi,xk)+dist(xk,xj)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)
给定样本 xi=(xi1;xi2;⋯ ;xin)x_i=(x_{i1};x_{i2};\cdots ;x_{in})xi=(xi1;xi2;⋯;xin) 和 xj=(xj1;xj2;⋯ ;xjn)x_j=(x_{j1};x_{j2};\cdots ;x_{jn})xj=(xj1;xj2;⋯;xjn) ,闵可夫斯基距离为:
distmk(xi,xj)=∥xi−xj∥p=(∑u=1n∣xiu−xju∣p)1pdist_{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≥1p\ge 1p≥1 ,公式满足距离度量的所有性质
当 p=1p=1p=1 时,闵可夫斯基距离即为曼哈顿距离(Manhattan distance),此时有
distman(xi,xj)=∥xi−xj∥1=∑u=1n∣xiu−xju∣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=2p=2p=2 时,闵可夫斯基距离即为欧式距离(Euclidean distance),此时有
disted(xi,xj)=∥xi−xj∥2=∑u=1n∣xiu−xju∣pdist_{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\inftyp→∞ 时,闵可夫斯基距离即为切比雪夫距离(Chebyshev distance),此时有
distcd(xi,xj)=∥xi−xj∥∞=limp→∞(∑u=1n∣xiu−xju∣p)1pdist_{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距离为
VDMp(a,b)=∑i=1k∣mu,a,imu,a−mu,b,imu,a∣pVDM_p(a,b)=\sum_{i=1}^k|\frac{m_{u,a,i}}{m_{u,a}}-\frac{m_{u,b,i}}{m_{u,a}}|^pVDMp(a,b)=i=1∑k∣mu,amu,a,i−mu,amu,b,i∣p
其中:
- mu,am_{u,a}mu,a 表示在属性u上取值为a的样本数
- mu,a,im_{u,a,i}mu,a,i 表示在第i个样本簇中在属性u上取值为a的样本数
- kkk为样本簇数
混合属性的距离计算
混合属性的距离计算可以将 闵可夫斯基距离 和 VDM 结合。
假定有ncn_cnc个有序属性,n−ncn-n_cn−nc个无序属性,令有序属性排列在无序属性之前,则
MinkovDMp(xi,xj)=(∑u=1nc∣xiu−xju∣p+∑u=uc+1nVDMp(xiu,xju))1pMinkovDM_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)
当样本空间中不同属性的重要性不同时,可使用加权距离
以加权闵可夫斯基距离为例:
distwmk(xi,xj)=(w1⋅∣xi1−xj1∣p+⋯+wn⋅∣xin−xjn∣p)1pdist_{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
其中:
权重 wi≥0(i=1,2,⋯ ,n)w_i\ge0(i=1,2,\cdots,n)wi≥0(i=1,2,⋯,n) 表示不同属性的重要性,通常 ∑i=1nwi=1\sum_{i=1}^nw_i=1∑i=1nwi=1.
最后
通常是基于某种形式的距离来定义“相似度度量”(similarity measure)
,距离越大,相似度越小。
然而,用于相似度度量的距离未必一定要满足距离度量的所有基本性质,尤其是直递性。
此时不满足某些性质的距离称为“非度量距离”(non-metric distance)
基于数据样本来确定合适的距离计算式,可通过距离度量学习(distance metric learning)
来实现
博客内容是我个人的学习笔记, 由于水平有限, 肯定有不少错误或遗漏. 若发现, 欢迎留言告知, 谢谢!
另,欢迎邮件与我探讨交流Email:ice-melt@outlook.com