常用的距离度量方式
1 课程概览
本课详细讲解KNN算法中常用的四种距离度量方式:欧式距离、曼哈顿距离、切比雪夫距离和闵氏距离。重点掌握欧式距离和曼哈顿距离,了解切比雪夫和闵氏距离。通过图示和计算示例直观理解各距离的特点和公式。
2 核心概念与定义
- 欧式距离(Euclidean Distance):对应维度差值平方和开平方根,即两点间直线距离。
- 曼哈顿距离(Manhattan Distance):也叫城市街区距离,对应维度差值绝对值求和,只能横平竖直走。
- 切比雪夫距离(Chebyshev Distance):对应维度差值绝对值的最大值,国王走法(可横竖斜走)。
- 闵氏距离(Minkowski Distance):不是新的距离度量方式,而是对欧式、曼哈顿、切比雪夫的总结通用公式。
3 算法与模型详解
3.1 四种距离度量方式对比
| 距离名称 | 别名 | 公式特点 | 掌握程度 |
|---|---|---|---|
| 欧式距离 | 直线距离 | 对应维度差值平方和开平方根 | 掌握 |
| 曼哈顿距离 | 城市街区距离 | 对应维度差值绝对值求和 | 掌握 |
| 切比雪夫距离 | 国王距离 | 对应维度差值绝对值的最大值 | 了解 |
| 闵氏距离 | — | 通用公式,参数p控制类型 | 了解 |
3.2 欧式距离
理解:两点之间直线最短,即勾股定理的推广。
公式: $$d = \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2}$$
特点:
- 直观的距离度量方法
- 两点在空间中的直线距离
- 对应维度差值平方和开平方根
3.3 曼哈顿距离
理解:城市街区距离,只能横平竖直走,不能走斜线。
公式: $$d = |x_1-x_2| + |y_1-y_2|$$
特点:
- 也叫城市街区距离
- 横平竖直,只能横向或纵向走
- 对应维度差值绝对值求和
- 无论怎么走,最短路径都是固定值
示例:从(0,0)到(6,6),曼哈顿距离 = |6-0| + |6-0| = 12步
3.4 切比雪夫距离
理解:国际象棋国王走法,可横、竖、斜走(8个方向)。
公式: $$d = \max(|x_1-x_2|, |y_1-y_2|)$$
特点:
- 国王可走8个方向(上下左右+四个斜向)
- 对应维度差值绝对值的最大值
- 可斜走,步数少于曼哈顿距离
示例:从(1,2)到(5,5),切比雪夫距离 = max(|1-5|, |2-5|) = max(4, 3) = 4步
3.5 闵氏距离
理解:不是新的距离度量方式,而是对上述距离的总结通用公式。
公式: $$d = \left(\sum_{k=1}^{n}|x_k - y_k|^p\right)^{1/p}$$
参数p与距离类型关系:
| p值 | 对应距离 |
|---|---|
| p=1 | 曼哈顿距离 |
| p=2 | 欧式距离 |
| p→∞ | 切比雪夫距离 |
闵氏距离是一个通用公式,通过参数p控制具体使用哪种距离。
4 数学原理与推导
4.1 欧式距离公式(n维)
$$d = \sqrt{\sum_{k=1}^{n}(x_k - y_k)^2}$$
4.2 曼哈顿距离公式(n维)
$$d = \sum_{k=1}^{n}|x_k - y_k|$$
4.3 切比雪夫距离公式(n维)
$$d = \max_{k=1}^{n}|x_k - y_k|$$
4.4 闵氏距离公式(n维)
$$d = \left(\sum_{k=1}^{n}|x_k - y_k|^p\right)^{1/p}$$
4.5 计算示例
数据:
| 点 | X | Y |
|---|---|---|
| A | 1 | 1 |
| B | 2 | 2 |
| C | 3 | 3 |
| D | 4 | 4 |
欧式距离:
- AB: √((2-1)² + (2-1)²) = √2 ≈ 1.414
- AC: √((3-1)² + (3-1)²) = √8 ≈ 2.828
- AD: √((4-1)² + (4-1)²) = √18 ≈ 4.243
曼哈顿距离:
- AB: |2-1| + |2-1| = 2
- AC: |3-1| + |3-1| = 4
- AD: |4-1| + |4-1| = 6
切比雪夫距离:
- AB: max(|2-1|, |2-1|) = 1
- AC: max(|3-1|, |3-1|) = 2
- AD: max(|4-1|, |4-1|) = 3
5 代码示例
本课无代码示例,距离计算在KNN算法中由库自动完成。
6 重难点与易错提醒
- ❗重点:欧式距离 = 对应维度差值平方和开平方根(勾股定理推广)。
- ❗重点:曼哈顿距离 = 对应维度差值绝对值求和(城市街区,横平竖直)。
- ❗重点:切比雪夫距离 = 对应维度差值绝对值的最大值(国王走法)。
- ⚠️易错:曼哈顿距离是绝对值求和,不是平方和开根号。
- ⚠️易错:切比雪夫距离是求最大值,不是求和。
- 💡深入理解:闵氏距离是通用公式,p=1为曼哈顿,p=2为欧式,p→∞为切比雪夫。
7 课堂问答精选
Q: 曼哈顿距离为什么叫城市街区距离?
A: 因为它模拟了在城市街区中行走的方式,只能横平竖直走(横向或纵向),不能走斜线。无论怎么走,最短路径都是对应维度差值绝对值的和。
Q: 闵氏距离是一种新的距离度量方式吗?
A: 不是。闵氏距离是对欧式、曼哈顿、切比雪夫距离的总结通用公式。通过参数p控制:p=1为曼哈顿距离,p=2为欧式距离,p→∞为切比雪夫距离。
8 本课小结
- 欧式距离:对应维度差值平方和开平方根(直线距离,勾股定理)。
- 曼哈顿距离:对应维度差值绝对值求和(城市街区,横平竖直)。
- 切比雪夫距离:对应维度差值绝对值的最大值(国王走法,可斜走)。
- 闵氏距离:通用公式,p=1曼哈顿,p=2欧式,p→∞切比雪夫。
9 延伸思考与实践
- 思考:在什么场景下使用曼哈顿距离比欧式距离更合适?
- 思考:切比雪夫距离为什么是求最大值而不是求和?
- 预习:特征预处理之归一化。