
在软件开发和数据分析的过程中,有很多不同的距离的计算方法,如欧氏距离,马氏距离,等等。对这些距离的理解,有助于我们更好的建立模型,规划数据平台的存储和索引功能。网上对这些距离概念的介绍已经很多,本文的主要目的,是对这些概念做一个归纳和总结。
首先,我们需要对”距离”本身进行一些约束。我们所描述的距离,指的是度量空间(Metric space)的距离。良好的测距函数应具备以下特征:
- 距离大于等于0;
- 距离是对称的,即 a 到 b 的距离应等于 b 到 a 的距离;
- 相同的输入,距离为0;
- 满足三角不等式;
本文对一系列常见的,满足上述原则的距离定义,作以下分类:
1,连续 m 维空间中,点和点的距离
闵可夫斯基距离(明氏距离)适用于多维连续空间中两个点位置的判断。每个空间内的数值必须是连续的。 这一类距离定义包括:欧几里得距离(欧氏距离),曼哈顿距离,切比雪夫距离。 而这一族距离的定义,统称为闵可夫斯基距离。定义如下:
连续 n 维空间中两点
之间的明氏距离(闵可夫斯基距离)公式为:
p取1或2时的明氏距离是最为常用的:
- p=2即为欧氏距离