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