最近在研究度量空间这一方向,总是混淆各种距离度量的定义,因此想记录一下自己对常用的四种距离度量的理解。
图1:三种Lp度量示例
1. 曼哈顿距离(L1度量)
(1)定义
曼哈顿距离是一种在几何度量空间中测量两点之间距离的方法,定义为在各坐标轴方向上距离的总和。在二维空间中,曼哈顿距离可以理解为从一个点到另一个点只能沿着水平或垂直方向行走的最小距离。
(2)公式
。
其中,表示数据维度,
分别表示对象
在第
个维度上的值。
(3)举例
如图1(a)所示,在二维空间中(D=2),对象到对象
的距离为
。
2. 欧式距离(L2度量)
(1)定义
欧式距离是指在欧几里得空间中两点间“普通”(即直线)的距离。
(2)公式
。
其中,表示数据维度,
分别表示对象
在第
个维度上的值。
(3)举例
如图1(b)所示,在二维空间中(D=2),对象到对象
的距离为
。
3. 切比雪夫距离(L∞度量)
(1)定义
切比雪夫距离是指二个点之间各坐标数值差绝对值的最大值。(有点拗口)
(2)公式
。
其中,表示数据维度,
分别表示对象
在第
个维度上的值。
(3)举例
如图1(c)所示,在二维空间中(D=2),对象到对象
的距离为
。
4. 编辑距离
(1)定义
编辑距离是指两个字串之间,由一个转换成另一个所需的最少编辑操作次数,允许的编辑操作包括:
- 将其中一个字符替换成另一个字符。
- 插入一个字符。
- 删除一个字符。
(2)公式:通常采用DP计算最小编辑距离,到时候单独写一个文章记录。
(3)举例
如图2所示,存在三个字串{"fame","game","acm"}。以计算"fame"与"acm"两个字串之间的距离为例,第一步删除"fame"的"m"字符,该字串变为"ame";第二步在"ame"的"a"和"m"字符之间插入字符"c",该字串变为"acme";第三步删除"acme"的"e"字符,该字串变为"acm";从字串"fame"转化为"acm"一共执行了三步操作,因此"fame"与"acm"之间的距离为3。
图2:编辑距离计算示例