机器学习 | 距离计算


相关文章:

机器学习 | 目录

机器学习 | 聚类评估指标

无监督学习 | KMeans与KMeans++原理

无监督学习 | KMeans之Skleaen实现:电影评分聚类

距离计算

对函数 d i s t ( ⋅ , ⋅ ) dist(\cdot,\cdot) dist(,) ,若它是一个“距离度量”(distance measure),则需满足一些基本性质:[1]

(1) 非 负 性 : d i s t ( x i , x j ) ≥ 0 ; 同 一 性 : d i s t ( x i , x j ) = 0 当 且 仅 当 x i = x j ; 对 称 性 : d i s t ( x i , x j ) = d i s t ( x j , x i ) 直 递 性 : d i s t ( x i , x j ) ≤ d i s t ( x i , x k ) + d i s t ( x k , x j ) 【 三 角 不 等 式 】 \begin{aligned} &非负性:dist(x_i,x_j) \geq 0; \\ &同一性:dist(x_i,x_j)=0 当且仅当 x_i=x_j;\\ &对称性:dist(x_i,x_j) = dist(x_j,x_i)\\ &直递性:dist(x_i,x_j)\leq dist(x_i,x_k)+dist(x_k,x_j) 【三角不等式】\\ \end{aligned}\tag{1} dist(xi,xj)0;dist(xi,xj)=0xi=xj;dist(xi,xj)=dist(xj,xi)dist(xi,xj)dist(xi,xk)+dist(xk,xj)(1)

1. 闵可夫斯基距离(有序属性)

给定样本 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) ,最常用的是“闵可夫斯基距离”(Minkowski distance)

(2) d i s t m k ( x i , x j ) = ( ∑ u = 1 n ∣ x i u − x j u ∣ p ) 1 p dist_{mk}(x_i,x_j)=\bigg(\sum_{u=1}^n |x_{iu}-x_{ju}|^p\bigg)^{\frac{1}{p}} \tag{2} distmk(xi,xj)=(u=1nxiuxjup)p1(2)

p ≥ 1 p \geq 1 p1,式 2 明显满足公式 1 的距离度量基本性质。

p → ∞ 时 , 则 得 到 切 比 雪 夫 距 离 p\to\infty 时,则得到切比雪夫距离 p

1.1 曼哈顿距离

p = 1 p=1 p=1 时,闵可夫斯基距离即曼哈顿距离(Manhattan distance),亦称“街区距离”(city block distance):

(3) 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}| \tag{3} distman(xi,xj)=xixj1=u=1nxiuxju(3)

1.2 欧氏距离

p = 2 p=2 p=2 时,闵可夫斯基距离即欧式距离(Euclidean distance):

(4) d i s t e d ( x i , x j ) = ∥ x i , x j ∥ 2 = ∑ u = 1 n ∣ x i u − x j u ∣ 2 dist_{ed}(x_i,x_j)=\|x_i,x_j\|_2=\sqrt{\sum_{u=1}^n|x_{iu}-x_{ju}|^2} \tag{4} disted(xi,xj)=xi,xj2=u=1nxiuxju2 (4)

我们常将属性划分为“连续属性”(continuous attribute)和“离散属性”(categorical attribute),前者在定义域上有无穷多个可能的取值,后者在定义域上是有限个取值。

然而,在讨论距离计算时,属性上是否定义了“序”关系更为重要。例如定义域 {1,2,3} 的离散属性与连续属性的性质更接近一些,能直接在属性值上结算距离:“1”与“2”比较接近、与“3”比较远,这样的属性称为“有序属性”(ordinal attribute);而定义域 {飞机, 火车, 轮船} 这样的离散属性则不能直接在属性值上计算距离,称为“无序属性”(non-ordinal attribute)。

显然,闵可夫斯基距离可用于连续属性和有序属性。

连续属性亦称“数值属性”(numerical attribute),“离散属性”亦称“列名属性“(nominal attribute)

2. VDM 距离(无序属性)

对无需属性可采用VDM(Value Difference Metric)。令 m u , a m_{u,a} mu,a 表示在属性 u u u 上取值为 a a a 的样本数, k k k 为样本数, m u , a , i m_{u,a,i} mu,a,i 表示在第 i i i 个样本簇中在属性 u u u 上取值为 a a a 的样本数, k k k 为样本簇数,则属性 u u u 上两个离散值 a a a b b b 之间的 VDM 距离为:

(5) V D M p ( a , b ) = ∑ i = 1 k ∣ m u , a , i m u , a − m u , b , i m u , b ∣ p VDM_p(a,b)=\sum_{i=1}^k\bigg|\frac{m_{u,a,i}}{m_{u,a}}-\frac{m_{u,b,i}}{m_{u,b}}\bigg|^p \tag{5} VDMp(a,b)=i=1kmu,amu,a,imu,bmu,b,ip(5)

3. MinkovDM 距离(混合属性)

将闵可夫斯基距离和 VDM 距离结合即可处理混合属性。假定有 n c n_c nc 个有序属性、 n − n c n-n_c nnc 个无序属性,不失一般性,令有序属性排列在无序属性之前,则

(6) 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 = n c + 1 n V D M p ( x i u , x j u ) ) 1 p MinkovDM_p(x_i,x_j)=\bigg( \sum_{u=1}^{n_c}|x_{iu}-x_{ju}|^p + \sum_{u=n_c+1}^{n} VDM_p(x_{iu},x_{ju}) \bigg)^{\frac{1}{p}} \tag{6} MinkovDMp(xi,xj)=(u=1ncxiuxjup+u=nc+1nVDMp(xiu,xju))p1(6)

4. 加权距离(重要性不同)

当样本空间中不同属性的重要性不同时,可使用“加权距离”(weighted distance)。

以加权闵可夫斯基距离为例:

(7) d i s t w m k ( x i , x j ) = ( ∑ u = 1 n w u ∣ x i u − x j u ∣ p ) 1 p dist_{wmk}(x_i,x_j)=\bigg(\sum_{u=1}^n w_u|x_{iu}-x_{ju}|^p\bigg)^{\frac{1}{p}} \tag{7} distwmk(xi,xj)=(u=1nwuxiuxjup)p1(7)

参考资料

[1] 周志华. 机器学习[M]. 北京: 清华大学出版社, 2016: 199-200.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值