当前位置: 首页 > 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.lryc.cn/news/462985.html

相关文章:

  • LeetCode1004.最大连续1的个数
  • Parallels Desktop20虚拟机软件能让你在Mac上无缝运行Windows
  • Golang | Leetcode Golang题解之第476题数字的补数
  • Spring 实现 3 种异步流式接口,干掉接口超时烦恼
  • 字节 HLLM 论文阅读
  • Chromium html<iframe>对应c++接口定义
  • Vue详细入门(语法【三】)
  • 快速构建SpringBoot项目
  • 架构设计笔记-14-云原生架构设计理论与实践
  • leetcode hot100 之【LeetCode 206. 反转链表】 java实现
  • 基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(上)
  • Spring Boot + Vue 前后端分离项目总结:解决 CORS 和 404 问题
  • JVM篇(学习预热 - JVM正式展开 - (实战课程学习总结))(持续更新迭代)
  • WebGL编程指南 - 入门续
  • EPS导出DWG存在地物缺失或者没有编码属性的情况
  • 跨境业务收款难?Zoho Books来帮忙
  • 深入解析 Harris 角点检测算法:从孔径问题到响应函数的完整推导
  • 抖音视频制作怎么暂停画面,抖音视频怎么让它有暂停的效果
  • Android GPIO方式解码红外数据
  • 基于SpringBoot+Vue的益农智慧服务平台【提供源码+答辩PPT+参考文档+项目部署】
  • 基于springboot的在线考试与学习交流网页
  • JS异步编程进阶(二):rxjs与Vue、React、Angular框架集成及跨框架状态管理实现原理
  • nginx web代理
  • 人形机器人的关节控制
  • python 爬虫 入门 二、数据解析(正则、bs4、xpath)
  • PTX 汇编代码语法
  • 【mysql】统计两个相邻任务/事件的间隔时间以及每个任务的平均用时
  • RHCE——笔记
  • Spring Boot在知识管理中的应用
  • OpenCV高级图形用户界面(14)交互式地选择一个或多个感兴趣区域函数selectROIs()的使用