机器学习中的距离计算

《机器学习-周志华》学习笔记

机器学习中的距离

距离度量的基本性质

对函数 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)=xixjp=(u=1nxiuxjup)p1

p≥1p\ge 1p1 ,公式满足距离度量的所有性质

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)=xixj1=u=1nxiuxju

曼哈顿距离也称为“城市街区距离”(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)=xixj2=u=1nxiuxjup

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)=xixj=limp(u=1nxiuxjup)p1

闵氏距离的缺点:

  1. 将各个分量的量纲(scale),也就是“单位”相同的看待了;
  2. 未考虑各个分量的分布(期望,方差等)可能是不同的。

说明
机器学习中常将属性划分为连续属性(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=1kmu,amu,a,imu,amu,b,ip

其中:

  • 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_cnnc个无序属性,令有序属性排列在无序属性之前,则
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=1ncxiuxjup+u=uc+1nVDMp(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)=(w1xi1xj1p++wnxinxjnp)p1

其中:

权重 wi≥0(i=1,2,⋯ ,n)w_i\ge0(i=1,2,\cdots,n)wi0(i=1,2,,n) 表示不同属性的重要性,通常 ∑i=1nwi=1\sum_{i=1}^nw_i=1i=1nwi=1.

最后

通常是基于某种形式的距离来定义“相似度度量”(similarity measure),距离越大,相似度越小。
然而,用于相似度度量的距离未必一定要满足距离度量的所有基本性质,尤其是直递性。
此时不满足某些性质的距离称为“非度量距离”(non-metric distance)

基于数据样本来确定合适的距离计算式,可通过距离度量学习(distance metric learning)来实现


博客内容是我个人的学习笔记, 由于水平有限, 肯定有不少错误或遗漏. 若发现, 欢迎留言告知, 谢谢!
另,欢迎邮件与我探讨交流Email:ice-melt@outlook.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值