当前位置: 首页 > 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),是两个向量之间的一种运算,通常用于衡量两个向量的相似性或相关性。

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

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

相关文章:

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

本文介绍一些AI中常见的距离度量和相似性度量算法: 1. 欧几里得距离(Euclidean Distance) 欧几里得距离是最常见的距离度量方法,用来计算两个向量之间的“直线距离”,也被成为L2范数。 公式如下,其中 x…...

LeetCode1004.最大连续1的个数

题目链接:1004. 最大连续1的个数 III - 力扣(LeetCode) 1.常规解法(会超时) 遍历数组,当元素是1时个数加一,当元素是0时且已有的0的个数不超过题目限制时,个数加一,若上…...

Parallels Desktop20虚拟机软件能让你在Mac上无缝运行Windows

Code 生成器:Parallels Desktop 20最新版本虚拟机的奇妙世界 🌟【轻松跨越操作系统界限】🌟 你是否常常感到在Mac和Windows之间切换太麻烦?Parallels Desktop 20最新版,让你不再为跨系统操作而烦恼。这款虚拟机软件能让…...

Golang | Leetcode Golang题解之第476题数字的补数

题目&#xff1a; 题解&#xff1a; func findComplement(num int) int {highBit : 0for i : 1; i < 30; i {if num < 1<<i {break}highBit i}mask : 1<<(highBit1) - 1return num ^ mask }...

Spring 实现 3 种异步流式接口,干掉接口超时烦恼

大家好&#xff0c;我是小富&#xff5e; 如何处理比较耗时的接口&#xff1f; 这题我熟&#xff0c;直接上异步接口&#xff0c;使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性&#xff0c;处理结果仅返回单个值。在某…...

字节 HLLM 论文阅读

github连接&#xff1a;https://github.com/bytedance/HLLM 探讨问题&#xff1a; 推荐LLM的三个关键问题&#xff1a; LLM预训练权重通常被认为是对世界知识的概括&#xff0c;其对于推荐系统的价值&#xff1f;对推荐任务进行微调的必要性&#xff1f;LLM是否可以在推荐系统…...

Chromium html<iframe>对应c++接口定义

HTML <iframe> 标签 使用 <iframe> 标签 在当前 HTML 文档中嵌入另一个文档&#xff1a; <!DOCTYPE html> <html> <body><h1>iframe 元素</h1><iframe src"https://www.w3school.com.cn" title"W3School 在线教…...

Vue详细入门(语法【三】)

今天滴的学习目标&#xff01;&#xff01;&#xff01; Vue组件是什么&#xff1f;组件的特性和优势Vue3计算属性Vue3监听属性 在前面Vue详细入门&#xff08;语法【一】——【二】&#xff09;当中我们学习了Vue有哪些指令&#xff0c;它的核心语法有哪些&#xff1f;今天我们…...

快速构建SpringBoot项目

快速构建SpringBoot项目 下文将简述如何快速构建一个SpringBoot项目&#xff0c;使用SpringData JPA实现持久层访问&#xff0c;集成lombok、swagger2及集成thymeleaf进行页面展示。 准备环境&#xff1a; JDK版本&#xff1a;jdk17 IntelliJ IDEA版本&#xff1a; 2023.2.7…...

架构设计笔记-14-云原生架构设计理论与实践

知识要点 云原生&#xff08;Cloud Native&#xff09;架构原则&#xff1a; 服务化原则&#xff1a;通过微服务架构&#xff0c;小服务&#xff08;MiniService&#xff09;架构把不同生命周期的模块分离出来&#xff0c;分别进行业务迭代&#xff0c;避免迭代频繁模块被慢速…...

leetcode hot100 之【LeetCode 206. 反转链表】 java实现

LeetCode 206. 反转链表 题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#x…...

基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(上)

操作系统&#xff1a;Windows Java开发包&#xff1a;JDK1.8 项目管理工具&#xff1a;Maven3.6.0 项目开发工具&#xff1a;IntelliJIDEA 数据库&#xff1a;MySQL Spring Cloud版本&#xff1a;Finchley.SR2 Spring Boot版本&#xff1a;2.0.6.RELEASE 目录 用户模块—user-…...

Spring Boot + Vue 前后端分离项目总结:解决 CORS 和 404 问题

Spring Boot Vue 前后端分离项目总结&#xff1a;解决 CORS 和 404 问题 在进行前后端分离的项目开发中&#xff0c;我们遇到了几个关键问题&#xff1a;跨域问题 (CORS) 和 404 路由匹配错误。以下是这些问题的详细分析和最终的解决方案。 问题描述 跨域请求被阻止 (CORS) 当…...

JVM篇(学习预热 - JVM正式展开 - (实战课程学习总结))(持续更新迭代)

目录 感觉也看了这么多&#xff0c;说一些乱七八糟的内容&#xff0c;完全没有实质的收获&#xff0c;那么现在让我们正式来预热下JVM 吧&#xff1f; 一、程序的执行方式 二、为什么使用 JVM 三、字节码和机器码的区别 四、JDK、JRE与JVM的关系 五、OracleJDK和OpenJDK …...

WebGL编程指南 - 入门续

相关内容&#xff1a;在attribute变量传递参数的基础上&#xff0c;通过JavaScript获取鼠标事件的坐标&#xff0c;再经过坐标转换传递给attribute变量&#xff1b;Web颜色缓冲区每次绘制之后都会重置相关函数&#xff1a;JavaScript鼠标事件onmousedown/onmouseup/onclick htm…...

EPS导出DWG存在地物缺失或者没有编码属性的情况

问题描述 使用eps导出dwg时&#xff0c;打开dwg会发现部分地物缺失或者没有编码属性。 这里就是一片空白&#xff1a; 解决办法 1 查看eps的图层信息&#xff0c;发现图层没有对应上&#xff0c;故此地物编码也是没有的。 2 可以右键全选本编码对象&#xff0c;实现批量快…...

跨境业务收款难?Zoho Books来帮忙

外贸跨境企业应收账款管理繁琐&#xff0c;ZohoBooks财务管理软件提供自动化解决方案&#xff0c;简化开票、跟进、收款和账户更新流程&#xff0c;提升效率和准确性&#xff0c;助力企业优化现金流和财务健康。 什么是应收账款&#xff1f; 应收账款指的是企业在提供商品或服…...

深入解析 Harris 角点检测算法:从孔径问题到响应函数的完整推导

在图像处理中&#xff0c;角点是非常重要的特征。为了快速、准确地检测角点&#xff0c;Harris 提出了 Harris 角点检测算法&#xff0c;它基于局部窗口内图像梯度的变化来判断角点。本文将从最基础的孔径问题&#xff08;Aperture Problem&#xff09;入手&#xff0c;通过泰勒…...

抖音视频制作怎么暂停画面,抖音视频怎么让它有暂停的效果

千万别滥用视频特效&#xff0c;不然它能毁掉你的抖音作品。在创作过程中&#xff0c;应尽量使用类似暂停画面、隐形字幕这样的视觉特效&#xff0c;可以显著提高作品的视觉体验。增强视频表现力的同时&#xff0c;也不会让画面看起来过于夸张。有关抖音视频制作怎么暂停画面的…...

Android GPIO方式解码红外数据

1 红外遥控协议 1.1 基本概念 1&#xff09;NEC协议&#xff0c;采用PWM方式调制。38KHz载波&#xff0c;一般是由引导码地址码地址反码数据数据反码构成。 遥控接收头端收到的信号为&#xff1a;逻辑1是560us低1680us高&#xff0c;逻辑0是560us低560us高。 地址&#xff1a;u…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…...