机器学习 | 距离计算
文章目录
- 距离计算
- 1. 闵可夫斯基距离(有序属性)
- 1.1 曼哈顿距离
- 1.2 欧氏距离
- 2. VDM 距离(无序属性)
- 3. MinkovDM 距离(混合属性)
- 4. 加权距离(重要性不同)
- 参考资料
相关文章:
机器学习 | 目录
机器学习 | 聚类评估指标
无监督学习 | KMeans与KMeans++原理
无监督学习 | KMeans之Skleaen实现:电影评分聚类
距离计算
对函数 dist(⋅,⋅)dist(\cdot,\cdot)dist(⋅,⋅) ,若它是一个“距离度量
”(distance measure),则需满足一些基本性质:[1]
(1)非负性:dist(xi,xj)≥0;同一性:dist(xi,xj)=0当且仅当xi=xj;对称性:dist(xi,xj)=dist(xj,xi)直递性:dist(xi,xj)≤dist(xi,xk)+dist(xk,xj)【三角不等式】\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)=0当且仅当xi=xj;对称性:dist(xi,xj)=dist(xj,xi)直递性:dist(xi,xj)≤dist(xi,xk)+dist(xk,xj)【三角不等式】(1)
1. 闵可夫斯基距离(有序属性)
给定样本 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) ,最常用的是“闵可夫斯基距离
”(Minkowski distance)
(2)distmk(xi,xj)=(∑u=1n∣xiu−xju∣p)1pdist_{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=1∑n∣xiu−xju∣p)p1(2)
对 p≥1p \geq 1p≥1,式 2 明显满足公式 1 的距离度量基本性质。
当 p→∞时,则得到切比雪夫距离p\to\infty 时,则得到切比雪夫距离p→∞时,则得到切比雪夫距离
1.1 曼哈顿距离
当 p=1p=1p=1 时,闵可夫斯基距离即曼哈顿距离
(Manhattan distance),亦称“街区距离
”(city block distance):
(3)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}| \tag{3}distman(xi,xj)=∥xi−xj∥1=u=1∑n∣xiu−xju∣(3)
1.2 欧氏距离
当 p=2p=2p=2 时,闵可夫斯基距离即欧式距离
(Euclidean distance):
(4)disted(xi,xj)=∥xi,xj∥2=∑u=1n∣xiu−xju∣2dist_{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,xj∥2=u=1∑n∣xiu−xju∣2(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)。令 mu,am_{u,a}mu,a 表示在属性 uuu 上取值为 aaa 的样本数,kkk 为样本数, mu,a,im_{u,a,i}mu,a,i 表示在第 iii 个样本簇中在属性 uuu 上取值为 aaa 的样本数,kkk 为样本簇数,则属性 uuu 上两个离散值 aaa 与 bbb 之间的 VDM 距离为:
(5)VDMp(a,b)=∑i=1k∣mu,a,imu,a−mu,b,imu,b∣pVDM_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=1∑k∣∣∣∣mu,amu,a,i−mu,bmu,b,i∣∣∣∣p(5)
3. MinkovDM 距离(混合属性)
将闵可夫斯基距离和 VDM 距离结合即可处理混合属性
。假定有 ncn_cnc 个有序属性、 n−ncn-n_cn−nc 个无序属性,不失一般性,令有序属性排列在无序属性之前,则
(6)MinkovDMp(xi,xj)=(∑u=1nc∣xiu−xju∣p+∑u=nc+1nVDMp(xiu,xju))1pMinkovDM_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=1∑nc∣xiu−xju∣p+u=nc+1∑nVDMp(xiu,xju))p1(6)
4. 加权距离(重要性不同)
当样本空间中不同属性的重要性不同时,可使用“加权距离
”(weighted distance)。
以加权闵可夫斯基距离为例:
(7)distwmk(xi,xj)=(∑u=1nwu∣xiu−xju∣p)1pdist_{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=1∑nwu∣xiu−xju∣p)p1(7)
参考资料
[1] 周志华. 机器学习[M]. 北京: 清华大学出版社, 2016: 199-200.
机器学习 | 距离计算相关推荐
- 向量距离计算 java_在机器学习中扮演着极为重要角色的向量
本章要点: 向量: 欧氏距离: 曼哈顿距离: 切比雪夫距离. 无论是在现实世界里,还是在人工智能领域中,"距离"都是一个相当重要的度量手段:在现实世界中,"距离" ...
- 【机器学习-西瓜书】九、聚类:性能度量;距离计算
关键词:性能度量:距离计算:VDM 9.1聚类任务 聚类任务是无监督学习任务,我们只需要有样本,而不需要有标签.聚类试图将数据集中的样本划分为若干个子集,每个子集称为一个簇(cluster).簇其实就 ...
- R语言dist函数距离计算实战(欧几里得距离、曼哈顿距离)
R语言dist函数距离计算实战(欧几里得距离.曼哈顿距离) 目录 R语言dist函数距离计算实战(欧几里得距离.曼哈顿距离)
- 【CCAI大咖秀】AlphaGo/Mobileye教父:智能科学需要融合机器学习、计算神经科学与认知科学
[CCAI大咖秀]AlphaGo/Mobileye教父:智能科学需要融合机器学习.计算神经科学与认知科学 8月26-27日,由中国人工智能学会(CAAI)发起并主办.中科院自动化研究所与CSDN共同承 ...
- oracle如何计算2个坐标的距离,百度地图两个坐标之间的距离计算
/** * 计算两组经纬度坐标 之间的距离 * params :lat1 纬度1: lng1 经度1: lat2 纬度2: lng2 经度2: len_type (1:m or 2:km); * re ...
- 微信外卖小程序 怎么计算与客户的距离_微信小程序结合腾讯位置服务实现用户商家距离计算...
前言 小程序实操,距离计算总结. 思路 一共有两种方法,各有利弊: 1.利用小程序的wx.getLocation 方法得到用户的经纬度,然后用已知的商家的经纬进行计算; 2.利用腾讯地图位置服务cal ...
- php 地图两点距离计算,计算地图上两点间的距离PHP类
计算地图上两点间的距离,使用的是谷歌地图 class GeoHelper { /** * @param int $lat1 * @param int $lon1 * @param int $lat2 ...
- html GPS坐标实现,JavaScript 实现GPS坐标点距离计算(两个经/纬度间的距离计算)...
在LBS(基于位置服务)的一些应用中,有时我们会需要计算两个用户或两个坐标点之间的距离.要解决这类问题,就要了解空间几何的概念并结合数学中在三角函数公式计算两点之间的值.本文介绍基于经度/纬度的,两个 ...
- 经纬度之间的距离计算
来自谷歌地图的计算公式: 通过JAVA的Math类各种方法调用.实现上述公式 private static double EARTH_RADIUS = 6378.137;// 单位千米/*** 角度弧 ...
最新文章
- python去实现链表_python实现链表
- matlab几何计算程序集
- 如何生成16位流水号
- EXCEL破冰 - 如何为透视表组织数据
- WordPress优化:为原创文章和转载文章分别添加不同的版权申明
- 科来无线抓包基础知识扫盲
- c语言用数组实现大数加减,c语言版大数计算器(实现大数的加减乘除运算,已更新源代码)...
- C# mysql导入文件报错:The used command is not allowed with this MySQL version
- 计算机网络原理 谢希仁(第8版)第一章习题答案
- 多功能小游戏神器微信小程序源码
- 微信小游戏实战--cocos creator实现wordle游戏(二)
- Win2003 服务器安装及设置教程 系统设置篇
- 古老 IP 新玩法,盘点传统文化出圈秘籍
- linux子进程崩溃父进程如何得知并重启子进程,子进程崩溃父进程如何得知并重启子进程...
- JSF与JSTL TAG的互用问题
- Win10安装Powerdesigner16
- 海思3559kernel移植(一):一路next的默认模式
- 会计资料无纸化已经全面来临,iBox开始步入硬软结合的新时代
- nginx配置文件解释(转载隔壁老梁)
- 短视频爆款文案怎样编辑才会更吸引用户 ——短视频文案撰写思路