十大距离
文章目录
- 十大距离
- 定义
- 1. 欧氏距离(Euclidean Distance)
- 2. 曼哈顿距离(Manhattan Distance)
- 3. 切比雪夫距离(Chebyshev Distance)
- 4. 闵可夫斯基距离(Minkowski Distance)
- 5. 标准化欧氏距离(Standardized Euclidean Distance)
- 6. 马氏距离(Mahalanobis Distance)
- 7. 余弦距离(Cosine Distance)
- 8. 汉明距离(Hamming Distance)
- 9. 杰卡德距离(Jaccard Distance)
- 10. 相关距离(Correlation Distance)
- 应用范围
- 欧氏距离
- 曼哈顿距离
- 切比雪夫距离
- 闵可夫斯基距离
- 标准化欧氏距离
- 马氏距离
- 余弦距离
- 汉明距离
- 杰卡德距离
- 相关距离
定义
1. 欧氏距离(Euclidean Distance)
欧氏距离是最常用的距离度量方法之一,它衡量的是多维空间中两点之间的直线距离。
- 原理:对于二维平面上的两点 a=(x1,y1)a = (x_1, y_1)a=(x1,y1)和b=(x2,y2)b = (x_2, y_2)b=(x2,y2),欧氏距离定义为:
d=(x1−x2)2+(y1−y2)2d = \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}d=(x1−x2)2+(y1−y2)2
2. 曼哈顿距离(Manhattan Distance)
曼哈顿距离也称为城市街区距离,它计算的是沿坐标轴方向的距离总和。
- 原理:对于二维平面上两点 a=(x1,y1)a = (x_1, y_1)a=(x1,y1) 、b=(x2,y2)b = (x_2, y_2)b=(x2,y2),曼哈顿距离通常定义为
d=∣x1−x2∣+∣y1−y2∣d = |x_1 - x_2| + |y_1 - y_2|d=∣x1−x2∣+∣y1−y2∣
3. 切比雪夫距离(Chebyshev Distance)
切比雪夫距离也称为棋盘距离,它衡量的是两点之间的最大坐标差。
- 原理:对于二维平面上的两点 a=(x1,y1)a = (x_1, y_1)a=(x1,y1) 和 b=(x2,y2)b = (x_2, y_2)b=(x2,y2),切比雪夫距离定义为:
d=max(∣x1−x2∣,∣y1−y2∣)d = \max(|x_1 - x_2|, |y_1 - y_2|) d=max(∣x1−x2∣,∣y1−y2∣)
4. 闵可夫斯基距离(Minkowski Distance)
闵可夫斯基距离是欧氏距离、曼哈顿距离和切比雪夫距离的一般化形式。
- 原理:对于二维平面上的两点 a=(x1,y1)a = (x_1, y_1)a=(x1,y1) 和 b=(x2,y2)b = (x_2, y_2)b=(x2,y2),闵可夫斯基距离定义为:
d=(∣x1−x2∣p+∣y1−y2∣p)1pd = (|x_1 - x_2|^p + |y_1 - y_2|^p)^{\frac{1}{p}}d=(∣x1−x2∣p+∣y1−y2∣p)p1
其中 ppp 是参数,当 p=1p = 1p=1 时,它等同于曼哈顿距离;当p=2p = 2p=2 时,它等同于欧氏距离;当 p→∞p \to \inftyp→∞时,它等同于切比雪夫距离。
5. 标准化欧氏距离(Standardized Euclidean Distance)
标准化欧氏距离考虑了各个特征的尺度差异,通过标准差进行归一化。
- 原理:对于二维平面上的两点 a=(x1,y1)a = (x_1, y_1)a=(x1,y1)和b=(x2,y2)b = (x_2, y_2)b=(x2,y2),标准化欧氏距离定义为:
d=(x1−x2)2sx2+(y1−y2)2sy2d = \sqrt{\frac{(x_1 - x_2)^2}{s_x^2} + \frac{(y_1 - y_2)^2}{s_y^2}}d=sx2(x1−x2)2+sy2(y1−y2)2
其中 sxs_xsx 和 sys_ysy 分别是 xxx 和 yyy维度的标准差。
6. 马氏距离(Mahalanobis Distance)
马氏距离考虑了特征之间的相关性,是标准化欧氏距离的进一步推广。
- 原理:对于二维向量 a\mathbf{a}a 和 b\mathbf{b}b,马氏距离定义为:
d=(a−b)TS−1(a−b)d = \sqrt{(\mathbf{a} - \mathbf{b})^T \mathbf{S}^{-1} (\mathbf{a} - \mathbf{b})}d=(a−b)TS−1(a−b)
其中 S\mathbf{S}S 是样本协方差矩阵。
7. 余弦距离(Cosine Distance)
余弦距离衡量的是两个向量之间的夹角,常用于文本分析和推荐系统。
- 原理:对于两个向量 a\mathbf{a}a 和 b\mathbf{b}b,余弦相似度定义为:
cos(θ)=a⋅b∥a∥∥b∥\cos(\theta) = \frac{\mathbf{a} \cdot \mathbf{b}}{\|\mathbf{a}\| \|\mathbf{b}\|}cos(θ)=∥a∥∥b∥a⋅b
余弦距离则定义为:
d=1−cos(θ)d = 1 - \cos(\theta)d=1−cos(θ)
8. 汉明距离(Hamming Distance)
汉明距离用于衡量两个等长字符串之间对应位置的不同字符的个数,虽然它通常用于字符串,但我们可以用二维平面上的二进制网格来可视化它。
- 原理:对于两个等长字符串(或二进制向量)a\mathbf{a}a 和 ( \mathbf{b} ),汉明距离定义为:
d=∑i=1n[ai≠bi]d = \sum_{i=1}^{n} [a_i \neq b_i]d=i=1∑n[ai=bi]
其中 [ai≠bi][a_i \neq b_i][ai=bi] 是指示函数,当 ai≠bia_i \neq b_iai=bi 时为 1,否则为 0 。
9. 杰卡德距离(Jaccard Distance)
杰卡德距离用于衡量两个集合的相似度。
- 原理:对于两个集合 AAA 和 BBB,杰卡德相似系数定义为:
J(A,B)=∣A∩B∣∣A∪B∣J(A, B) = \frac{|A \cap B|}{|A \cup B|}J(A,B)=∣A∪B∣∣A∩B∣
杰卡德距离则定义为:
d=1−J(A,B)d = 1 - J(A, B)d=1−J(A,B)
10. 相关距离(Correlation Distance)
相关距离基于皮尔逊相关系数,用于衡量两个变量之间的线性关系。
- 原理:对于两个变量 XXX 和YYY,皮尔逊相关系数定义为:
ρ=Cov(X,Y)σXσY\rho = \frac{\text{Cov}(X, Y)}{\sigma_X \sigma_Y}ρ=σXσYCov(X,Y)
相关距离则定义为:
d=1−∣ρ∣d = 1 - |\rho|d=1−∣ρ∣
应用范围
欧氏距离
- 数据挖掘与机器学习:在聚类算法(如K-Means聚类)中,用于衡量样本点之间的相似性,以确定样本的归属类别 。
- 计算机图形学:计算图形中顶点之间的距离,判断图形的形状和位置关系,例如在三维模型的变形和对齐操作中。
- 地理信息系统(GIS):计算地图上两点之间的实际距离,辅助路径规划、位置分析等。
曼哈顿距离
- 城市规划与交通领域:模拟城市街区中两点之间的实际通行距离,在路径规划、物流配送路线计算等方面有应用 ,例如计算快递员在城市街区中的送货路线长度。
- 网格系统与棋盘游戏:在一些基于网格的游戏(如国际象棋等)中,衡量棋子移动的步数距离 ,或者在二维网格地图中计算两点间的最短移动距离。
切比雪夫距离
- 棋盘类游戏算法:在国际象棋、围棋等棋盘游戏的AI算法中,用于评估棋子之间的威胁程度或距离,例如判断一个棋子在多步内能够到达的范围 。
- 图像处理与计算机视觉:在图像中判断像素点之间的最大位移距离,用于图像分割、目标跟踪等场景。
闵可夫斯基距离
- 数据的泛化距离度量:作为欧氏距离、曼哈顿距离等的一般化形式,可根据不同的参数 ( p ) 灵活调整距离度量方式,适用于多种需要自定义距离度量的场景,如在不同特征分布的数据集中寻找合适的距离度量方式 。
- 机器学习模型评估:在评估模型预测结果与真实值之间的差异时,通过调整 ( p ) 值来关注不同类型的误差,例如 ( p = 1 ) 时更关注绝对误差,( p = 2 ) 时更关注平方误差 。
标准化欧氏距离
- 多特征数据的距离度量:当数据集中不同特征的尺度差异较大时,如在分析身高(厘米级)和体重(千克级)对个体分类的影响时,标准化欧氏距离能够消除特征尺度的影响,准确衡量样本之间的相似性 。
- 模式识别与分类:在手写数字识别、图像分类等模式识别任务中,对不同维度特征进行标准化后再计算距离,提高分类的准确性 。
马氏距离
- 考虑特征相关性的数据处理:在金融风险评估中,多个财务指标之间往往存在相关性,马氏距离可以考虑这些相关性,更准确地评估不同投资组合之间的相似性或风险程度 。
- 异常检测:通过考虑数据的协方差结构,能够更有效地检测出数据集中的异常点,例如在网络流量监测中识别异常的流量模式 。
余弦距离
- 文本挖掘与信息检索:用于计算文本之间的相似度,在搜索引擎中,判断搜索关键词与文档内容的相关性,或者在文本分类中衡量文本之间的相似程度 。
- 推荐系统:基于用户对不同物品的评分向量,计算用户之间或物品之间的相似度,为用户提供个性化推荐,如电影推荐、音乐推荐等 。
汉明距离
- 编码与通信领域:用于检测和纠正数据传输过程中的错误,衡量编码之间的差异程度,例如在纠错码(如汉明码)中判断编码的正确性 。
- 生物信息学:比较DNA序列、蛋白质序列之间的差异,研究生物进化关系或物种间的亲缘关系 。
杰卡德距离
- 集合数据分析:在社交网络分析中,计算用户兴趣集合的相似度,用于推荐相似兴趣的用户,或者在文本分析中,衡量两个文本中关键词集合的相似性 。
- 图像识别与目标检测:判断图像中目标物体的重叠程度,在多目标检测算法中,评估检测结果与真实目标之间的相似度 。
相关距离
- 统计学与数据分析:在研究变量之间的线性关系时,通过相关距离判断变量之间的关联程度,例如在经济学中分析不同经济指标之间的相关性 。
- 机器学习中的特征选择:评估特征之间的相关性,去除高度相关的冗余特征,提高模型的训练效率和泛化能力 。