1.5.1 距离

设某个内积空间中有向量,这两个向量的起点位于坐标原点,向量间的距离就是指它们的终点——对应于坐标系中的两个点——之间的距离。

定义:内积空间中的向量之间的距离记作:,定义为:

显然,距离的具体计算方法,是由内积的函数形式确定的。对于欧几里得空间,也就是用点积作为内积的具体函数形式,两个向量之间的距离就称为欧几里得距离,在三维几何空间中,就等同于我们所熟知的“两点间的距离”。

● 欧几里得距离

依据点积的定义,欧几里得距离(Euclidean Distance)定义如下。

定义 设是欧几里得空间的两个向量,它们之间的距离是:

例如,有两个向量,它们之间的欧几里得距离是:

如果对应为平面几何,则如图1-5-1所示,就是计算两点的距离,根据平面几何知识,容易求得

图1-5-1

手工计算可以依据定义完成,如果用程序计算,则下面所演示的是常见的方法。

至此,我们已经从线性代数的角度,从开始探讨向量空间的性质,到进行特殊化,定义内积,再定义点积,然后看到了我们能够直观感受到的欧几里得空间,其中的二维、三维空间就与平面几何、立体几何中遵循的规律相同,并且有一些基本概念还可以在线性代数中推广到更高维度,比如刚才的距离定义。这些我们熟知的内容,皆源自古希腊的伟大数学家欧几里得(Euclid)的著作《几何原本》(图1-5-2所示的是1704年出版的《几何原本》封面)。

欧几里得距离是线性代数教材所讨论的距离,但是,在机器学习中和生活生产实践中,有时候用其他方式定义距离更方便,下面列举常见的几个。

● 曼哈顿距离

曼哈顿距离(Manhattan Distance),也称出租车距离城市街区距离。曼哈顿是美国纽约市(New York City)的中心区,它的大部分道路呈黑棋盘格形状,如图1-5-3所示。

图1-5-2

图1-5-3

在如棋盘布局的街道上,从一点到另外一点,不论怎么走,距离都差不多。考虑理想化情况,如图1-5-4中的标记所示。如果从点出发,到点,则可以有多种路径,例如:

● ,长度为8个单位

● ,长度为8个单位

● ,长度为8个单位

图1-5-4

德国数学家闵可夫斯基(Hermann Minkowskin,四维时空理论的创立者)根据图1-5-4所示的特点,命名了曼哈顿距离

定义 设是两个向量,这两个向量之间的曼哈顿距离为:

曼哈顿距离也被称为距离。

例如,对于向量,依据上述定义,可以计算它们之间的曼哈顿距离为:

在Python的科学计算算法程度序中,有一个重要的库SciPy,它不仅包括了本节所介绍的各种距离的计算函数,还有其他很多本节没有介绍的距离计算函数。比如曼哈顿距离,可以使用cityblock()函数实现计算。

● 切比雪夫距离

以俄罗斯数学家切比雪夫命名的切比雪夫距离(Chebyshev Distance),定义如下。

定义:设是两个向量,这两个向量之间的切比雪夫距离为:

即:的对应坐标差的绝对值集合中最大的值。

例如向量之间的切比雪夫距离为:

切比雪夫距离的另外一种等价表达方式是:

于是也将切比雪夫距离称为距离。

如果用程序计算切比雪夫距离,则可以使用scipy.spatial.distance中提供的函数chebyshev()实现。

请读者关注切比雪夫(巴夫尼提·列波维奇·切比雪夫,如图1-5-5所示),因为他的大名在概率论中还会出现——切比雪夫不等式,而且他还有一个得意门生:安德雷·马尔可夫(Andrey Andreyevich Markov),随机过程中的马尔科夫链就是他的研究成果。

图1-5-5

● 闵可夫斯基距离

从数学角度来看,将前述对距离的定义一般化,就是闵可夫斯基距离(Minkowski Distance)。

定义 设是两个向量,这两个向量之间的闵可夫斯基距离为:

● 若,即为“曼哈顿距离”;

● 若,即为“欧几里得距离”;

● 若,即为“切比雪夫距离”。

这里用闵可夫斯基距离作为更一般化的定义,或许是要纪念这位伟大的数学家、物理学家(如图1-5-6所示),他创立了闵可夫斯基时空(四维时空),为后来的广义相对论的建立提供了框架。可惜天妒英才,45岁便因病英年早逝。

图1-5-6