机器学习——几种距离度量方法比较

来源:互联网 发布:天天酷跑ios淘宝充值 编辑:程序博客网 时间:2024/06/06 17:01

1. 欧氏距离(Euclidean Distance)

欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。

机器学习——几种距离度量方法比较(1)

欧氏距离

二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离:

机器学习——几种距离度量方法比较(1)三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:

机器学习——几种距离度量方法比较(1)

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离(两个n维向量):

机器学习——几种距离度量方法比较(1)

2. 曼哈顿距离(Manhattan Distance)

顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。

机器学习——几种距离度量方法比较(1)

曼哈顿距离

二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离:

机器学习——几种距离度量方法比较(1)

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的曼哈顿距离:

机器学习——几种距离度量方法比较(1)

3. 切比雪夫距离 (Chebyshev Distance)

国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。

机器学习——几种距离度量方法比较(1)

切比雪夫距离_国际象棋

二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离:

机器学习——几种距离度量方法比较(1)

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的切比雪夫距离:

机器学习——几种距离度量方法比较(1)

4. 闵可夫斯基距离(Minkowski Distance)

闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性的表述。

闵氏距离定义:

两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:

机器学习——几种距离度量方法比较(1)

其中p是一个变参数:

当p=1时,就是曼哈顿距离;

当p=2时,就是欧氏距离;

当p→∞时,就是切比雪夫距离。

因此,根据变参数的不同,闵氏距离可以表示某一类/种的距离。

闵氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离都存在明显的缺点。

e.g. 二维样本(身高[单位:cm],体重[单位:kg]),现有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c的闵氏距离。但实际上身高的10cm并不能和体重的10kg划等号。

闵氏距离的缺点:

(1)将各个分量的量纲(scale),也就是“单位”相同的看待了;

(2)未考虑各个分量的分布(期望,方差等)可能是不同的。