机器学习数学基础之切比雪夫距离、闵可夫斯基距离
切比雪夫距离:
国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,x2)走到格子(y1,y2)最少需要多少步?答案是 max(|x1-y1|,|x2-y2|),这个距离就叫切比雪夫距离。
- 二维平面两点 a(x1,x2),b(y1,y2) 间的切比雪夫距离:
\(d = max\left ( \left | x_{1}-y_{1}\right |,\left | x_{2}-y_{2}\right |\right )\)
- n维平面两点 a(x1,x2,......,xn),b(y1,y2,......,yn) 间的切比雪夫距离:
\(d =\max_{i} \left ( \left | x_{i}-y_{i}\right |\right )\)
- Matlab计算 (0,0),(1,1),(3,4)两两之间的切比雪夫距离:
闵可夫斯基距离:
闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性的表述。
闵氏距离定义:两个n维变量a(x1,x2,…...,xn)与b(y1,y2,......,yn)间的闵可夫斯基距离定义为:
\(d = \sqrt[p]{\sum_{i=1}^{n}\left | x_{i}-y_{i}\right |^{p}}\)
其中p是一个变参数:
当p=1时,就是曼哈顿距离;
当p=2时,就是欧氏距离;
当p→\(+\infty\)时,就是切比雪夫距离。
因此,根据变参数的不同,闵氏距离可以表示某一种的距离。
- Matlab计算闵氏距离(以p=\(+\infty\)的切比雪夫距离为例)
闵氏距离的缺点:
闵氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离都存在明显的缺点。
e.g. 二维样本(身高[单位:cm],体重[单位:kg]),现有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c的闵氏距离。但实际上身高的10cm并不能和体重的10kg划等号。
(1)将各个分量的量纲(scale),也就是“单位”相同的看待了;
(2)未考虑各个分量的分布(期望,方差等)可能是不同的。
参考博客:here