【机器学习】距离公式分析

[TOC]

机器学习中的距离

机器学习任务中,常用的距离公式有以下几种:

  1. 欧式距离(又称欧几里得距离)
  2. 曼哈顿距离(又称城市街区距离)
  3. 切比雪夫距离
  4. 闵氏距离(又称闵可夫斯基距离)
  5. 标准化欧式距离
  6. 余弦距离

(一)欧式距离

公式:

\[
d = \sqrt{(a-b)^T(a-b)}
\]

其中 \(a, b\) 为两个 \(n\) 维向量;

理解:

欧式距离在二维空间中代表某个点到另一个点的直线距离。扩展到 \(n\) 维空间,指两个点在 \(n\) 维空间中的真实距离。

局限:

  1. 假如两个点分别为 A(1, 1000), B(3, 60),则第二个维度对距离 \(d\) 的计算有更大的贡献。这说明我们只是对向量中各元素分别进行了处理,但并未考虑维度之间的关系,以及不同维度对距离的贡献程度。
  2. 这种方法认为两点之间始终可以通过直线距离到达,因此更适用于欧式空间。

(二)曼哈顿距离

公式:

\[
d = \sum_{k=1}^n|a_k - b_k|
\]

理解:

前面提到,欧式距离有一局限,即认为两点之间始终可以通过直线距离到达。但是现实世界中,从原点到目标点并不都能通过直线到达,因此引入曼哈顿距离。曼哈顿距离考虑了更多的实际因素,在曼哈顿世界中,我们只能沿着线画出的格子行进。

局限:

与欧式距离相似,认为各个维度对距离 \(d\) 的贡献是一样的,即各个维度权重相同。解决方法:很多维度可以通过预处理转化成曼哈顿距离,而在预处理阶段可以解决贡献权重问题。


(三)切比雪夫距离

公式:

\[
d = \max_{k}|a_k-b_k| \\]

另一种形式:

\[
d = \lim_{p\rightarrow \infin} \left(\sum_{k=1}^{n} |a_k-b_k|^p\right)^{\frac{1}{p}}
\]

理解:

欧氏距离只能直线走,曼哈顿距离只能沿着划定的格子边缘走,而切比雪夫中说的距离则是两者的结合体(即可直线走,也可沿着格子走)。
两个点之间的距离定义为:各坐标数值差的绝对值的最大值。此距离中,加入了优化的成分,通过最值来定义距离。

以国际象棋为例,国王走一步能够移动到相邻的8个方格中的任意一个,那么国王从格子 \((x_1,y_1)\) 走到格子 \((x_2,y_2)\) 最少需要多少步?自己走走试试。你会发现最少步数总是 \(\max( | x_2-x_1 | , | y_2-y_1 | )\) 步 。

在上面的距离中可以看出该距离计算适用的场景。像曼哈顿距离一样,需要将空间划分成网格,然后以网格为单位来进行度量。但此距离中,允许你走8个方向。而曼哈顿距离中,只允许你走4个方向。


(四)闵氏距离

公式:

\[
d = \left(\sum_{k=1}^{n}|a_k-b_k|^p\right)^{\frac{1}{p}}
\]

理解:

闵氏距离不是一种距离,而是一组距离。\(p=1\) 时就是曼哈顿距离,\(p=2\) 时就是欧式距离,\(p \rightarrow \infin\) 时就是切比雪夫距离。因此根据不同的参数 \(p\) ,闵氏距离可以表示多种距离。

局限:

举个例子:二维样本(身高,体重),其中身高范围是150190,体重范围是5060,有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b之间的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c之间的闵氏距离,但是身高的10cm真的等价于体重的10kg么?因此用闵氏距离来衡量这些样本间的相似度很有问题。简单来说,闵氏距离主要有两个缺点:

  1. 将各个分量的量纲(scale)(也就是“单位”)同等看待,这是不可取的
  2. 没有考虑各个分量的分布(期望,方差等)可能是不同的

(五)标准化欧氏距离

公式:

\[
d = \sqrt{\sum_{k=1}^n \left( \frac{a_k-b_k}{\delta_k} \right)^2}
\]

其中 \(\delta_k\) 是第 \(k\) 维的标准差。

理解:

由于向量各维分量的分布不一致,所以先将各维度分量标准化到 均值、方差 相同(均值为 0,方差为 1),再计算欧式距离,则避免了欧式距离的“量纲”局限。换种角度看,如果将 \({1}/{{\delta_k}^2}\) 看作权重,则这个公式可看作是加权欧式距离。


(六)余弦距离

原文地址:https://www.cnblogs.com/xxxxxxxxx/p/11657807.html

时间: 2024-08-02 08:33:26

【机器学习】距离公式分析的相关文章

B-线性代数-距离公式汇总

目录 距离公式汇总 一.欧式距离 二.曼哈顿距离 三.闵可夫斯基距离(Minkowski distance) 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ 距离公式汇总 假设\(n\)维空间中有两个点\(x_i\)和\(x_j\),其中\(x_i = (x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T\),\(x_j = (x_j^{(

MT【21】任意基底下的距离公式

解析: 评:$\theta=90^0$时就是正交基底下(即直角坐标系下)的距离公式.

python好书推荐:【A028】[异步图书].Python机器学习:预测分析核心算法

Python机器学习:预测分析核心算法pdf获取方式:点这里 请注意,本并没有直接告诉薇姬,他认为她是一个具有奉献精神和坚定信念的人.然而,对于薇姬来说,她不难承认自己具备这些特征,也很容易将其应用于自己的工作中.即使薇姬认为自己并不具备奉献精神和坚定信念,也无损这种新关系.Python机器学习:预测分析核心算法. 不管薇姬的自我评价如何,本说的都是实话,所以他的观点在最坏的情况下则会被忽视,在最好的情况下则会促使薇姬对自己(和本)感觉良好.基于人的本性,即便薇姬在现实中并不具有奉献精神和坚定信

斯坦福机器学习实现与分析之一(前言)

自去年底开始学习Andrew Ng的机器学习公开课,欲依其课件试着实现部分算法以加深理解,然在此过程中遇到部分问题,或为程序实现,或为算法理解.故而准备将此课程整理,并记录自己的理解,或对或错可共同讨论. 此课程主要包括三部分:监督学习算法.无监督学习算法以及学习理论.监督学习部分讲了回归.生成学习算法与SVM:无监督学习则讲了K-means,MOG,EM,PCA,ICA以及增强学习等算法:学习理论则是讲解算法的评估,模型与特征的选择等方法.此处课程整理的顺序将与原讲义相同. 另外,考虑此处主要

斯坦福机器学习实现与分析之二(线性回归)

回归问题提出 首先需要明确回归问题的根本目的在于预测.对于某个问题,一般我们不可能测量出每一种情况(工作量太大),故多是测量一组数据,基于此数据去预测其他未测量数据. 比如课程给出的房屋面积.房间数与价格的对应关系,如下表: 若要测量出所有情况,不知得测到猴年马月了.有了上面这一组测量数据,我们要估计出一套房子(如2800平方英尺5个房间)的价格,此时回归算法就可以荣耀登场了. 回归算法推导 有了上面这个问题,如何来估计房子的价格呢?首先需要建立模型,一种最简单的模型就是线性模型了,写成函数就是

机器学习 - 距离计算

在机器学习领域里,最核心的两种数值计算分别是: 距离计算 概率计算 今天Reinhard Hsu就来看看常见都有哪些常见的的距离计算. 欧式距离(Euclidean Metric) 欧几里得距离,用于计算两个点之间的实际距离,计算方法是使用毕达哥拉斯定理,也就是咱们中国的勾股定理. 对于二维平面上的两点,它们的欧式距离可以这样算: $$ d=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2} $$ 曼哈顿距离(Manhattan distance) 想象下你站在曼哈顿街区,需要从一个十

Alexander的Python机器学习 之目录分析。

无聊,顺应一下潮流,学习一下python机器学习吧. 买了一本书,首先分析一下目录吧. 1.第一章是 Python机器学习的生态系统. 1.1.数据科学或机器学习的工作流程. 然后又分成6点进行详细说明:获取,检查和探索,清理和准备,建模,评估,部署. 1.2.讲解了Python库和相应的功能. 这里也分成5个点进行详细说明:获取,检查,准备,建模和评估,部署. 1.3.设置机器学习的环境. 1.4.最后来一个总结. 2.第二章就来一个案例吧,构建应用程序,来挖掘低价的公寓. 2.1.首先来获取

经典递推问题错排公式分析

问题: 十本不同的书放在书架上.现重新摆放,使每本书都不在原来放的位置.有几种摆法? 这个问题推广一下,就是错排问题,是组合数学中的问题之一.考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排. n个元素的错排数记为D(n). 研究一个排列错排个数的问题,叫做错排问题或称为更列问题. 错排问题最早被尼古拉·伯努利和欧拉研究,因此历史上也称为伯努利-欧拉的装错信封的问题.这个问题有许多具体的版本,如在写信时将n封信装到n个不同的信封里,有多

点到平面的距离公式

转载自:http://www.cnblogs.com/graphics/archive/2010/07/10/1774809.html 准备知识 平面的一般式方程 Ax +By +Cz + D = 0 其中n = (A, B, C)是平面的法向量,D是将平面平移到坐标原点所需距离(所以D=0时,平面过原点) 向量的模(长度) 给定一个向量V(x, y, z),则|V| = sqrt(x * x + y * y + z * z) 向量的点积(内积) 给定两个向量V1(x1, y1, z1)和V2(