撰于 阅读 181

深度学习中常用的几种距离度量算法

🚩 简单说来,各种"距离"的应用场景简单概括为:

  • 空间:欧氏距离用于度量二维或三维空间中的直线距离,非常适合用于几何空间中的距离计算;
  • 路径

    • 曼哈顿距离:网格路径计算,只允许沿着水平和垂直方向移动,而不考虑对角线方向的距离;
    • 切比雪夫距离:用于度量国际象棋国王的最短路径距离,适用于只考虑水平、垂直或对角线的移动

    闵可夫斯基距离是欧氏距离、曼哈顿距离和切比雪夫距离的统一形式

  • 加权:标准化欧氏距离,用于需要考虑各维度不同权重的情况,例如数据分析中不同特征维度具有不同单位或重要性时;
  • 排除量纲和依存:马氏距离,用于消除不同变量间的依赖性和量纲影响,适用于多元数据分析和异常检测;
  • 向量差距:夹角余弦,适用于文本分析等高维向量空间中,比较角度而非距离;
  • 编码差别:汉明距离,用于度量字符串或编码之间的差别,常用于错误检测与纠正(如纠错码)中;
  • 集合近似度:杰卡德相似系数与距离,常应用于推荐系统和文本相似性计算中;
  • 相关性:相关系数(如皮尔逊相关系数)用于度量两个变量间的线性关系,相关距离作为一种距离度量,用于数据分析中;
  • 时间序列:DTW距离用于时间序列的相似性度量,适合变速率或变形的时间序列数据;标准化欧式距离也可以用于等长时间序列的简单相似度比较

具体定义

1.欧式距离

image

2.曼哈顿距离

image

两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的曼哈顿距离:

image

3.切比雪夫距离

image

4.闵可夫斯基距离

image

5.标准化欧式距离

image

经过简单的推导就可以得到两个n维向量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的标准化欧氏距离的公式:

image

6.马氏距离

image

马氏距离就是用于度量两个坐标点之间的距离关系,表示数据的协方差距离。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度。 对于一个均值为:

image

协方差矩阵为Σ的多变量矢量:

image

其马氏距离:

image

如果协方差矩阵为单位矩阵,马氏距离就简化为欧式距离;如果协方差矩阵为对角阵,其也可称为正规化的马氏距离:

image

其中σi是xi的标准差。

7.巴氏距离

image

对于连续概率分布,Bhattacharyya系数被定义为:

image

Bhattacharyya系数是两个统计样本之间的重叠量的近似测量,可以被用于确定被考虑的两个样本的相对接近。

8.汉明距离

汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。例如: 1011101与1001001之间的汉明距离是2。 2143896与2233796之间的汉明距离是3。 "toned"与"roses"之间的汉明距离是3。

9.夹角余弦

image

10.杰卡德相似系数

image

11.皮尔逊系数

image

image

image

12.DTW距离

image

image

13.信息熵

image