在机器学习中,距离是一个非常形象并且常用的概念。在分类和聚类问题中,距离的作用尤为明显。除此之外,在回归问题,甚至自然语言处理问题上,距离也有其相应的应用。

除了距离之外,相似系数也是解决这一问题的方法之一,显而易见,距离和相似系数应该呈反比,距离越小越相似;距离越大越不同。距离主要是对不同的观测进行度量,相似系数主要是对不同的变量进行度量。但是,距离也可以衡量不同的变量,同理,相似系数也可以衡量不同的观测。

本文将介绍距离的定义,并详细介绍两种非常常用的距离:明可夫斯基距离和马氏距离。在后文中,我们将介绍相似系数。

距离定义

设两个n维向量x⃗=(x1,x2,⋯ ,xn)T\vec{x} = (x_1,x_2,\cdots,x_n)^Tx=(x1​,x2​,⋯,xn​)T和y⃗=(y1,y2,⋯ ,yn)T\vec{y} = (y_1,y_2,\cdots,y_n)^Ty​=(y1​,y2​,⋯,yn​)T为两个观测,其所定义的距离一般需要满足三个条件:

  1. 非负性:d(x⃗,y⃗)≥0d(\vec{x},\vec{y}) ≥ 0d(x,y​)≥0,d(x⃗,y⃗)=0d(\vec{x},\vec{y}) = 0d(x,y​)=0当且仅当x⃗=y⃗\vec{x} = \vec{y}x=y​
  2. 对称性:d(x⃗,y⃗)=d(y⃗,x⃗)d(\vec{x},\vec{y}) = d(\vec{y},\vec{x})d(x,y​)=d(y​,x)
  3. 三角不等式:假设存在另一个n维向量z⃗\vec{z}z,d(x⃗,y⃗)≤d(x⃗,z⃗)+d(z⃗,y⃗)d(\vec{x},\vec{y}) ≤ d(\vec{x},\vec{z}) + d(\vec{z},\vec{y})d(x,y​)≤d(x,z)+d(z,y​)

明可夫斯基距离

明可夫斯基距离是一类距离的总称。向量x⃗\vec{x}x和y⃗\vec{y}y​之间的明可夫斯基距离定义为:
d(x⃗,y⃗)=[∑i=1n∣xi−yi∣q]1qd(\vec{x},\vec{y}) = [\sum_{i=1}^{n}|x_i-y_i|^q]^{\frac{1}{q} }d(x,y​)=[i=1∑n​∣xi​−yi​∣q]q1​其中q>0q>0q>0。

明可夫斯基距离有三种特殊且常见的形式:

  1. 当q=1q=1q=1时,d(x⃗,y⃗)=∑i=1n∣xi−yi∣d(\vec{x},\vec{y}) = \sum_{i=1}^{n}|x_i-y_i|d(x,y​)=∑i=1n​∣xi​−yi​∣,称为绝对值距离,也被称为曼哈顿距离。
  2. 当q=2q=2q=2时,d(x⃗,y⃗)=[∑i=1n∣xi−yi∣]12=(x⃗−y⃗)T(x⃗−y⃗)d(\vec{x},\vec{y}) = [\sum_{i=1}^{n}|x_i-y_i|]^\frac{1}{2} = \sqrt{(\vec{x}-\vec{y})^T(\vec{x}-\vec{y})}d(x,y​)=[∑i=1n​∣xi​−yi​∣]21​=(x−y​)T(x−y​)​,称为欧式距离,也是最常用的一种距离。
  3. 当q=∞q = \inftyq=∞,d(x⃗,y⃗)=max1&lt;i&lt;n∣xi−yi∣d(\vec{x},\vec{y}) = max_{1&lt;i&lt;n}|x_i - y_i|d(x,y​)=max1<i<n​∣xi​−yi​∣,称为切比雪夫距离。

在明考夫斯基距离中,qqq值越大,其受(较大的)异常值影响就越厉害。可以发现当q=∞q = \inftyq=∞时,切比雪夫距离将完全由最大的异常值决定。同理,欧式距离比绝对值距离受异常值的影响程度更高。

明考夫斯基距离可以说是生活中最最常见的一种距离,到那时它有一个非常大的缺点,那就是它会受到单位和数据变异程度的不同的影响。

举一个简单的例子,如果我们要统计一个单位所有人身高、体重和年龄,那么在统计身高的时候,使用“m”做单位,那么大家身高的变化应该集中在1.55-1.85之间;但是如果使用“cm”做单位,那么身高的变化就应该集中在155-185之间。这两个单位造成的数据变异程度(方差)不同,从而使得身高这个变量在后期计算距离的时候重要程度不同。显然,变异性更大的变量应该占据更加重要的地位,在本例中,选择以“cm”做单位会使得身高变量的重要性提高。

为了解决这个问题,我们引入马氏距离。

马氏距离

向量x⃗\vec{x}x和y⃗\vec{y}y​之间的马氏距离定义为:
d(x⃗,y⃗)=(x⃗−y⃗)TS−1(x⃗−y⃗)d(\vec{x},\vec{y}) = \sqrt{(\vec{x}-\vec{y})^TS^{-1}(\vec{x}-\vec{y})}d(x,y​)=(x−y​)TS−1(x−y​)​其中,SSS代表x⃗\vec{x}x、y⃗\vec{y}y​的协方差矩阵。

使用马氏距离最大的好处在于避免了单位不同以及数据变异程度的不同对计算造成的影响。

但是,马氏距离也有自己的缺点,协方差矩阵的计算在大规模数据中是困难的。尤其在聚类问题中,每一个类别中的观测都在不停变化导致协方差矩阵也在变化。

明可夫斯基距离和马氏距离相关推荐

  1. 简单粗暴理解与实现机器学习之K-近邻算法(三):距离度量、欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化距离、余弦距离、汉明距离、杰卡德距离、马氏距离

    K-近邻算法 文章目录 K-近邻算法 学习目标 1.3 距离度量 1 欧式距离**(Euclidean Distance):** 2 **曼哈顿距离(Manhattan Distance):** 3 ...

  2. 欧式距离、标准化欧式距离、马氏距离、余弦距离

    目录 欧氏距离 标准化欧氏距离 马氏距离 夹角余弦距离 汉明距离 曼哈顿(Manhattan)距离 1.欧式距离 欧式距离源自N维欧氏空间中两点x1,x2x1,x2间的距离公式: 2.标准化欧式距离 ...

  3. ML:图像数据、字符串数据等计算相似度常用的十种方法(余弦相似性、皮尔逊、闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离、马氏距离、汉明距离、编辑距离、杰卡德相似系数、相对熵/KL散度、Helli

    ML:图像数据.字符串数据等计算相似度常用的十种方法(余弦相似性.皮尔逊.闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离.马氏距离.汉明距离.编辑距离.杰卡德相似系数.相对熵/KL散度.Helli ...

  4. Mahalanobis距离(马氏距离)

    Mahalanobis距离(马氏距离) Mahalanobis距离是多维空间中两点相似性的度量,它本身不是聚类或者分类算法. Mahalanobis距离与Euclidean距离(欧式距离)类似,不过还 ...

  5. 欧式距离和马氏距离的关系(公式推导)

    欧氏距离(Euclidean Distance)与马氏距离(Mahalanobis Distance) 欧氏距离 度量样本和样本分布间的距离d(x,μ)=(x−μ)T(x−μ)\begin{align ...

  6. 六大距离:欧式距离、街道距离、马氏距离等

    文章目录 1 简 介 2 距离特征 2.1 Euclidean距离 2.2 Cosine距离 2.3 manhattan距离 2.4 chebyshev距离 2.5 minkowski距离 2.6 m ...

  7. 数据的距离度量 一、欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离

    数据的距离度量 一.欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离 前言 欧式距离 标准欧式距离 曼哈顿距离 闵氏距离 切比雪夫距离 兰氏距离 马氏距离 前言 本篇记录一下常用的数据 ...

  8. 距离度量的方法,欧式距离,切比雪夫距离、马氏距离、巴氏距离,曼哈顿距离

    距离度量的方法有欧式距离,切比雪夫距离.马氏距离.巴氏距离,曼哈顿距离等: 用欧氏距离(也称欧几里德度量),高中所学的两点距离公式就是欧氏距离在二维空间上的公式,也就是欧氏距离的n的值为2的情况. 二 ...

  9. 曼哈顿距离,欧式距离,明式距离,切比雪夫距离以及马氏距离

    1.曼哈顿距离 曼哈顿距离又称Manhattan distance,还见到过更加形象的,叫出租车距离的.具体贴一张图,应该就能明白. 上图摘自维基百科,红蓝黄皆为曼哈顿距离,绿色为欧式距离. 2.欧式 ...

最新文章

  1. 深入探究Java中equals()和==的区别是什么
  2. access导出MySQL表格_将ACCESS 的数据库中的表的文件 导出了EXCEL格式
  3. mysql死锁检测算法_MySQL 8 死锁检测脚本
  4. java中的sleep()和wait()的区别
  5. 面向对象与面向过程在软件开发中的应用
  6. linux listener作用,Local_listener 的作用
  7. 基于JAVA+Swing+MYSQL的图书馆管理系统
  8. mysql自定义函数重载_python pyMysql 自定义异常 函数重载
  9. python输出24进制时间_python-如何在给定时间原点的情况下将日期时间从十进制转换为“%y-%m-%d%H:%M:%S”?...
  10. eclipse—安装ADT插件搭建安卓开发环境
  11. Cognos 10.2.1安装
  12. 友盟分享纯图片到微信
  13. 贝叶斯回归 matlab,逻辑回归模型的贝叶斯分析
  14. 树莓派设置静态ip地址
  15. 从概念入手,了解AWS在Iaas、Paas,Saas层的服务
  16. 浪潮财务软件 系统表预检查: 对象 ID X。无法使用闩锁类型 SH 读取并闩锁页 。由于不可修复的错误,CHECK 语句已终止。
  17. JavaScript按键使盒子移动
  18. iOS软件开发实现类似微信上传图片选择
  19. Linux系统安全以及应用
  20. c语言点餐系统测试总结报告,数据结构实训报告c语言点餐系统net

热门文章

  1. 夜间降噪与多帧降噪的原理
  2. Xshell和Xftp免密钥激活版
  3. Weblogic漏洞 - 通杀方式
  4. 公众号, 订阅号, 服务号, 企业号, 应用号(小程序)都是些什么玩意儿, 有什么关系和区别
  5. Uniapp/Vue中引入使用阿里图标
  6. CAD教程:CAD建筑户型图纸还能这么画?
  7. python之排序操作及heapq模块
  8. 知乎高赞的字节跳动总结的设计模式 PDF 火了,完整版限时开放下载!
  9. 关于技嘉主板使用win10操作系统关机自动重启的一种解决办法。其他厂家主板也可以尝试一下此方法。...
  10. python的金融计算器_python 计算器