机器学习中的距离计算

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

机器学习中的距离

距离度量的基本性质

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

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

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

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

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)=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距离为
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=1kmu,amu,a,imu,amu,b,ip

其中:

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

其中:

权重 w i ≥ 0 ( i = 1 , 2 , ⋯   , n ) w_i\ge0(i=1,2,\cdots,n) wi0(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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值