当前位置: 首页 > news >正文

【AI知识】距离度量和相似性度量的常见算法

本文介绍一些AI中常见的距离度量和相似性度量算法:

1. 欧几里得距离(Euclidean Distance)

欧几里得距离是最常见的距离度量方法,用来计算两个向量之间的“直线距离”,也被成为L2范数。

公式如下,其中 x x x y y y 是两个n维向量, x i x_i xi y i y_i yi 分别是它们的第 i i i 个分量。
在这里插入图片描述
应用示例: 在图像识别或聚类算法(如K-Means)中,欧几里得距离常用于度量数据点之间的相似性。


2. 曼哈顿距离(Manhattan Distance)

曼哈顿距离也称为“L1距离”或“城市街区距离”,它是两个向量之间的绝对坐标差值之和。
在这里插入图片描述
应用示例: 在图像处理中,可以将图像的像素值表示为向量,通过计算不同图像像素向量之间的曼哈顿距离,衡量图像的相似性。


3. 余弦相似度(Cosine Similarity)

余弦相似度衡量的是两个向量之间的夹角余弦值,用于评估两个向量在方向上的相似性。

公式如下,其中 x ⋅ y x \cdot y xy 表示向量的点积, ∥ x ∥ ∥x∥ x ∥ y ∥ ∥y∥ y 是向量的范数(有L1范数,即曼哈顿距离,L2范数,即欧几里得距离),(即向量的长度)。计算出的余弦相似性值介于 [−1,1] 之间,值越接近1,两个向量的方向越相似,值越接近-1,则表示两个向量的方向越相反,值为0则表示它们是正交的(即完全不相似)。
应用示例: 在自然语言处理(NLP)中,将文本表示为词向量,通过计算不同文本向量之间的余弦相似度,可衡量文本的语义相似性。


4. 闵可夫斯基距离(Minkowski Distance)

闵可夫斯基距离是欧几里得距离和曼哈顿距离的广义形式,参数 p p p 控制距离计算的形式。当 p = 1 p=1 p=1 时,它是曼哈顿距离;当 p = 2 p=2 p=2 时,它是欧几里得距离。
在这里插入图片描述
应用示例: 闵可夫斯基距离在需要调整距离度量灵活性时使用广泛。


5. 切比雪夫距离(Chebyshev Distance)

切比雪夫距离是向量分量之间最大差值的度量,用于衡量两个向量在一个维度上的最大变化。
在这里插入图片描述
应用示例: 切比雪夫距离常用于棋盘上棋子的移动问题(如国际象棋中的国王),因为它考虑的是最大一步距离。


6. 马氏距离(Mahalanobis Distance)

马氏距离(Mahalanobis Distance)是一种距离的度量,可以看作是欧氏距离的一种修正,它考虑了各个维度的不同尺度,还考虑了数据的相关性,即协方差结构

  • 一个点和总体数据集之间的马氏距离:
    在这里插入图片描述
    在这里插入图片描述

  • 两个点之间的马氏距离:
    在这里插入图片描述

应用示例: 马氏距离在异常检测和聚类算法中使用,特别是在数据具有不同尺度和相关性的情况下。


7. 汉明距离(Hamming Distance)

汉明距离用于计算两个等长向量(通常是二进制向量)中不相同位置的个数。

公式:
其中, I ( x i ≠ y i ) I(x_i \neq y_i) I(xi=yi)为指示函数,当 x i x_i xi y i y_i yi 不相等时值为1,否则为0。

应用示例: 汉明距离常用于衡量两个字符串或二进制序列之间的差异,广泛用于纠错码和信息编码中。


8. Jaccard系数(Jaccard Index)

Jaccard系数(Jaccard Index)是衡量两个集合相似性的一种常用指标。它的定义是两个集合交集的大小与两个集合并集的大小之比。Jaccard系数的值范围从0到1,0表示完全不相似,1表示完全相似。
在这里插入图片描述
应用示例: 在自然语言处理和信息检索中,Jaccard系数常用于比较文档的相似性,尤其是在处理词袋模型(Bag of Words)时。


9.什么是点积?

点积(dot product),也叫内积(inner product),是两个向量之间的一种运算,通常用于衡量两个向量的相似性或相关性。

点积的定义:
在这里插入图片描述点积的几何解释: 在这里插入图片描述

应用示例: 在机器学习和自然语言处理中,点积常用于衡量向量之间的相似性,尤其是在计算余弦相似度时。两个向量越相似,它们的点积越大。


http://www.mrgr.cn/news/52583.html

相关文章:

  • 多进程思维导图
  • 开源节流-2024年10月17日-思维学习笔记
  • 【二刷hot-100】day2
  • 跟着导师学东西,学什么怎么学
  • 深入理解Dubbo原理鱼实现,提升职场竞争力
  • 【素数练习题】
  • 可变参数函数、可变参数模板和折叠表达式
  • 函数(3)
  • 二叉树与堆讲解
  • 《计算机视觉》—— 疲劳检测
  • Redux与Redux-thunk详解
  • CMake变量作用域
  • 从零开始的LeetCode刷题日记:199. 二叉树的右视图
  • 极氪7X路上能见度越来越高,就连小猎豹都被折服成为第10000号车主
  • openpose二维骨架搭建介绍及代码撰写详解(总结4)
  • 【python实操】python小程序之TestSuite和TestRunner
  • C语言二维数组的遍历 Java的强制转换和隐形转换
  • 人脸识别之疲劳检测
  • 集合框架11:泛型集合
  • 忙碌的工作和生活,地平线8号探界者商务背包伴左右