目录
机器学习中的距离
(一)欧式距离
(二)曼哈顿距离
(三)切比雪夫距离
(四)闵氏距离
(五)标准化欧氏距离
(六)余弦距离
机器学习中的距离
机器学习任务中, 常用的距离公式有以下几种:
欧式距离(又称欧几里得距离)
曼哈顿距离(又称城市街区距离)
切比雪夫距离
闵氏距离(又称闵可夫斯基距离)
标准化欧式距离
余弦距离
(一)欧式距离
公式:
\[ d = \sqrt{(a-b)^T(a-b)} \]
其中 \(a, b\) 为两个 \(n\) 维向量;
理解:
欧式距离在二维空间中代表某个点到另一个点的直线距离. 扩展到 \(n\) 维空间, 指两个点在 \(n\) 维空间中的真实距离.
局限:
假如两个点分别为 A(1, 1000), B(3, 60), 则第二个维度对距离 \(d\) 的计算有更大的贡献. 这说明我们只是对向量中各元素分别进行了处理, 但并未考虑维度之间的关系, 以及不同维度对距离的贡献程度.
这种方法认为两点之间始终可以通过直线距离到达, 因此更适用于欧式空间.
(二)曼哈顿距离
公式:
\[ 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\) , 闵氏距离可以表示多种距离.
局限:
举个例子: 二维样本 (身高, 体重), 其中身高范围是 150~190, 体重范围是 50~60, 有三个样本: a(180,50),b(190,50),c(180,60). 那么 a 与 b 之间的闵氏距离(无论是曼哈顿距离, 欧氏距离或切比雪夫距离) 等于 a 与 c 之间的闵氏距离, 但是身高的 10cm 真的等价于体重的 10kg 么? 因此用闵氏距离来衡量这些样本间的相似度很有问题. 简单来说, 闵氏距离主要有两个缺点:
将各个分量的量纲 (scale)(也就是 "单位") 同等看待, 这是不可取的
没有考虑各个分量的分布 (期望, 方差等) 可能是不同的
(五)标准化欧氏距离
公式:
\[ 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