向量相似性度量的常用方法

向量相似性度量的常用方法

  • 0. 引言
  • 1. 欧氏距离(Euclidean distance)
  • 2. 余弦相似度(Cosine similarity)
  • 3. 汉明距离(Hamming distance)
  • 4. 点积相似度 (Dot Product Similarity)
  • 5. 曼哈顿距离 (Manhattan Distance)

0. 引言

今天花时间学习学习向量相似性度量的常用方法,痛苦自己一次,以后就轻松了。😼

1. 欧氏距离(Euclidean distance)

在这里插入图片描述

1.1 概念

欧氏距离是衡量两个向量之间“距离”的常用方法。它是在欧几里得空间中,两个点之间的最短直线距离。

1.2 计算公式

对于 n 维向量 x 和 y,欧氏距离计算公式如下:

d(x, y) = sqrt((x1-y1)^2 + (x2-y2)^2 + ... + (xn-yn)^2)

其中,x1, x2, …, xn 是 x 向量中的元素,y1, y2, …, yn 是 y 向量中的元素。

1.3 应用场景

欧氏距离在许多领域都有应用,例如:

  • 机器学习:欧氏距离常用于 k 最近邻算法 (KNN) 中,计算样本之间的距离
  • 图像检索:欧氏距离常用于图像检索中,计算图像之间的相似度
  • 推荐系统:欧氏距离常用于推荐系统中,计算用户之间的相似度

2. 余弦相似度(Cosine similarity)

在这里插入图片描述

2.1 概念

余弦相似度是衡量两个向量之间“方向”相似程度的常用方法。它是在向量空间中,两个向量夹角的余弦值。

2.2 计算公式

对于 n 维向量 x 和 y,余弦相似度计算公式如下:

cos(x, y) = (x1*y1 + x2*y2 + ... + xn*yn) / (||x|| * ||y||)

其中,x1, x2, …, xn 是 x 向量中的元素,y1, y2, …, yn 是 y 向量中的元素,||x|| 和 ||y|| 分别是 x 和 y 向量的模长。

向量的模长公式

对于 n 维向量 x,其模长计算公式如下:

||x|| = sqrt(x1^2 + x2^2 + ... + xn^2)

其中,x1, x2, …, xn 是 x 向量中的元素。

2.3 应用场景

余弦相似度在许多领域都有应用,例如:

  • 文本检索:余弦相似度常用于文本检索中,计算文本之间的相似度
  • 自然语言处理:余弦相似度常用于自然语言处理中,计算词语之间的相似度
  • 信息检索:余弦相似度常用于信息检索中,计算文档之间的相似度

3. 汉明距离(Hamming distance)

在这里插入图片描述

3.1 概念

汉明距离是衡量两个相同长度的字符串之间“差异”的常用方法。它是两个字符串中不同字符的数量。

3.2 计算公式

对于两个长度为 n 的字符串 x 和 y,汉明距离计算公式如下:

d(x, y) = n - Σ(x[i] == y[i])

其中,x[i] 和 y[i] 分别是 x 和 y 字符串中第 i 个字符,Σ 表示求和运算。

3.3 应用场景

汉明距离在许多领域都有应用,例如:

  • 通信:汉明距离常用于通信中,检测数据传输中的错误
  • 信息论:汉明距离常用于信息论中,衡量两个信息源之间的差异
  • 生物学:汉明距离常用于生物学中,比较 DNA 序列

4. 点积相似度 (Dot Product Similarity)

在这里插入图片描述

4.1 点积相似度定义

点积相似度 (Dot Product Similarity) 是衡量两个向量之间“相似度”的常用方法。它是两个向量的点积除以它们的模长的乘积。

4.2 点积相似度计算公式

对于 n 维向量 x 和 y,点积相似度计算公式如下:

sim(x, y) = (x * y) / (||x|| * ||y||)

其中,x * y 表示 x 和 y 的点积,||x|| 和 ||y|| 分别表示 x 和 y 向量的模长。

4.3 点积相似度性质

点积相似度具有以下性质:

  • **范围:**点积相似度的范围是 [-1, 1]。
  • **相似性:**点积相似度越大,两个向量越相似。
  • **正交性:**如果两个向量正交,则它们的点积相似度为 0。

4.4 点积相似度应用场景

点积相似度在许多领域都有应用,例如:

  • **文本检索:**点积相似度常用于文本检索中,计算文本之间的相似度
  • **自然语言处理:**点积相似度常用于自然语言处理中,计算词语之间的相似度
  • **推荐系统:**点积相似度常用于推荐系统中,计算用户之间的相似度

4.5 点积相似度与余弦相似度

点积相似度与余弦相似度密切相关。余弦相似度是点积相似度的一种归一化形式。它们之间的关系如下:

cos(x, y) = sim(x, y)

5. 曼哈顿距离 (Manhattan Distance)

在这里插入图片描述

5.1 曼哈顿距离定义

曼哈顿距离 (Manhattan Distance) 是衡量两个向量之间“距离”的常用方法。它是两个向量对应分量差的绝对值的总和。

5.2 曼哈顿距离计算公式

对于 n 维向量 x 和 y,曼哈顿距离计算公式如下:

d(x, y) = |x1-y1| + |x2-y2| + ... + |xn-yn|

其中,x1, x2, …, xn 是 x 向量中的元素,y1, y2, …, yn 是 y 向量中的元素。

5.3 曼哈顿距离性质

曼哈顿距离具有以下性质:

  • **非负性:**曼哈顿距离是非负的,对于任意向量 x 和 y,都有 d(x, y) >= 0。
  • 对称性:曼哈顿距离是对称的,对于任意向量 x 和 y,都有 d(x, y) = d(y, x)。
  • **三角不等式:**曼哈顿距离满足三角不等式,对于任意向量 x、y 和 z,都有 d(x, z) <= d(x, y) + d(y, z)。

5.4 曼哈顿距离与欧几里得距离

曼哈顿距离与欧几里得距离是两种常用的距离度量方法。它们的区别在于:

  • 曼哈顿距离是各个分量差的绝对值的总和,而欧几里得距离是各个分量差的平方和的平方根。
  • 曼哈顿距离的计算速度更快,而欧几里得距离的计算精度更高。

5.5 曼哈顿距离应用场景

曼哈顿距离在许多领域都有应用,例如:

  • **图像处理:**曼哈顿距离常用于图像处理中,计算图像之间的差异
  • **机器学习:**曼哈顿距离常用于机器学习中,计算样本之间的距离
  • **数据挖掘:**曼哈顿距离常用于数据挖掘中,计算数据点之间的相似度

完结!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/544832.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zookeeper快速入门二:zookeeper基本概念

本文是zookeeper系列之快速入门中的第二篇&#xff0c;欢迎大家观看与指出不足。 目录 一、zookeeper的存储结构 二、什么是znode 三、znode节点的四种类型 四、权限控制ACL&#xff08;Access Control List&#xff09; 五、事件监听watcher 一、zookeeper的存储结构 z…

linux上MySQL的安装

(1)解压安装包 tar -xzvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.33-linux-glibc2.12-x86_64 /usr/local/mysql(2)创建数据目录 [roothecs-161929 3306]# mkdir -p /data/mysql/3306/data [roothecs-161929 3306]# mkdir -p /data/mysql/3306/binlog [roo…

C语言-strerror(打印错误信息)和perror(获得错误信息)

strerror&#xff08;打印错误信息&#xff09;和perror&#xff08;获得错误信息&#xff09; strerror 语法格式 返回类型是char* 都需要头文件 errno.h 这里是错误码 每一个错误码代表一个错误信息 错误码 对照的错误信息 每一种编译器在写的时候已经规定好了 错误码对…

开环端到端自动驾驶: 到底行不行

开环端到端自动驾驶&#xff1a; 到底行不行 附赠全面专业的自动驾驶学习资料&#xff1a;直达链接 TLDR: 别在nuScenes上做开环端到端自动驾驶刷点了。 论文&#xff1a; https://arxiv.org/pdf/2312.03031.pdf github: https://github.com/NVlabs/BEV-Planner 前言 Uni…

HCIP—OSPF课后练习一

本实验模拟了一个企业网络场景&#xff0c;R1、R2、R3为公司总部网络的路由器&#xff0c;R4、R5分别为企业分支机构1和分支机构2的路由器&#xff0c;并且都采用双上行方式与企业总部相连。整个网络都运行OSPF协议&#xff0c;R1、R2、R3之间的链路位于区域0&#xff0c;R4与R…

日期与时间(Java)

文章目录 日期与时间&#xff08;Java&#xff09;一、JDK8之前的1.1 Date1.2 SimpleDateFormat1.3 Calendar 二、 JDK8之后的2.1 LocalDate、LocalTime和LocalDateTime2.2 ZoneId和ZonedDateTime2.3 Instant2.4 DateTimeFormatter2.4 Period和 Duration &#x1f389;写在最后…

如何构建Docker自定义镜像

说明&#xff1a;平常我们使用Docker运行各种容器&#xff0c;极大地方便了我们对开发应用的使用&#xff0c;如MySQL、Redis&#xff0c;以及各种中间件&#xff0c;使用时只要拉镜像&#xff0c;运行容器即可。本文介绍如何创建一个Demo&#xff0c;自定义构建一个镜像。 开…

JavaWeb笔记 --- 三、MyBatis

三、MyBatis 概述 MyBatis是一个持久层框架&#xff0c;用于简化JDBC Mapper代理开发 在resources配置文件包中创建多级目录用 / MyBatis核心配置文件 enviroments&#xff1a;配置数据库连接环境信息。 可以配置多个enviroment&#xff0c;通过default属性切换不同的envir…

【RS422】基于未来科技FT4232HL芯片的多波特率串口通信收发实现

功能简介 串行通信接口常常用于在计算机和低速外部设备之间传输数据。串口通信存在多种标准&#xff0c;以RS422为例&#xff0c;它将数据分成多个位&#xff0c;采用异步通信方式进行传输。   本文基于Xilinx VCU128 FPGA开发板&#xff0c;对RS422串口通信进行学习。   根…

vuex购物车案例

store/index.js // 导入vue import Vue from vue // 导入vuex import Vuex from vueximport cart from ./module/cartVue.use(Vuex)// 创建仓库store const store new Vuex.Store({strict: true,modules: {cart} })// 导出仓库 export default storestore/modules/cart impo…

2024 第一届VCTF 纳新赛 Web方向 题解WP

hackjs 题目描述&#xff1a;A baby oldjs, just warm up. 附件给源码 const express require(express) const fs require(fs) var bodyParser require(body-parser); const app express() app.use(bodyParser.urlencoded({extended: true })); app.use(bodyParser.json…

Day39:安全开发-JavaEE应用SpringBoot框架Actuator监控泄漏Swagger自动化

目录 SpringBoot-监控系统-Actuator SpringBoot-接口系统-Swagger 思维导图 Java知识点&#xff1a; 功能&#xff1a;数据库操作&#xff0c;文件操作&#xff0c;序列化数据&#xff0c;身份验证&#xff0c;框架开发&#xff0c;第三方组件使用等. 框架库&#xff1a;MyB…