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

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

  • 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 曼哈顿距离应用场景

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

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

完结!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[蓝桥杯练习题]确定字符串是否包含唯一字符/确定字符串是否是另一个的排列

确定字符串是否包含唯一字符 #include<bits/stdc.h> using namespace std; int main(){ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);map<char,int>m;string s;cin>>s;for(int i0;i<s.size();i){if(isalpha(s[i]))s[i]tolower(s[i]);if(…

Mock.js了解(Mock就是模拟一个后端,Postman模拟前端)

JSON5 Node.js Vue CLI与Mock.js Jquery与Mock.js Mock与分页

NeRF学习——NeRF-Pytorch的源码解读

学习 github 上 NeRF 的 pytorch 实现项目&#xff08;https://github.com/yenchenlin/nerf-pytorch&#xff09;的一些笔记 1 参数 部分参数配置&#xff1a; 训练参数&#xff1a; 这段代码是在设置一些命令行参数&#xff0c;这些参数用于控制NeRF&#xff08;Neural Radi…

智慧城市与数字孪生:共创未来城市的智慧生活

目录 一、智慧城市与数字孪生的概念与特点 二、智慧城市与数字孪生共创智慧生活的路径 1、城市规划与建设的智能化 2、城市管理与服务的智慧化 3、城市安全与应急管理的智能化 三、智慧城市与数字孪生面临的挑战与对策 四、智慧城市与数字孪生的发展趋势与展望 1、技术…

redis中List和hash数据类型

list类型是用来存储多个有序的字符串的&#xff0c;列表当中的每一个字符看做一个元素&#xff0c;一个列表当中可以存储一个或者多个元素&#xff0c;redis的list支持存储2^32-1个元素。redis可以从列表的两端进行插入&#xff08;pubsh&#xff09;和弹出&#xff08;pop&…

游戏引擎中网络游戏的基础

一、前言 网络游戏所面临的挑战&#xff1a; 一致性&#xff1a;如何在所有的主机内都保持一样的表现可靠性&#xff1a;网络传输有可能出现丢包安全性&#xff1a;反作弊&#xff0c;反信息泄漏。多样性&#xff1a;不同设备之间链接&#xff0c;比如手机&#xff0c;ipad&a…

专升本 C语言笔记-07 逗号运算符

1.逗号表达式的用法 就是用逗号隔开的多个表达式。逗号表达式&#xff0c;从左向右依次执行。 2.逗号表达式的特性 2.1.当没有括号时&#xff0c;第一个表达式为整个表达式的值。 代码 int x 3,y 5,a 0; a x,y; printf("a %d",a); 说明:因为逗号优先级最低,会…

OpenCV4.9.0开源计算机视觉库在 Linux 中安装

返回目录&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV 环境变量参考 下一篇&#xff1a;将OpenCV与gcc和CMake结合使用 引言&#xff1a; OpenCV是一个开源的计算机视觉库&#xff0c;由英特尔公司所赞助。它是一个跨…

确保云原生部署中的网络安全

数字环境正在以惊人的速度发展&#xff0c;组织正在迅速采用云原生部署和现代化使用微服务和容器构建的应用程序&#xff08;通常运行在 Kubernetes 等平台上&#xff09;&#xff0c;以推动增长。 无论我们谈论可扩展性、效率还是灵活性&#xff0c;对于努力提供无与伦比的用…

源码|批量执行invokeAll()多选一invokeAny()

ExecutorService中定义了两个批量执行任务的方法&#xff0c;invokeAll()和invokeAny()&#xff0c;在批量执行或多选一的业务场景中非常方便。invokeAll()在所有任务都完成&#xff08;包括成功/被中断/超时&#xff09;后才会返回&#xff0c;invokeAny()在任意一个任务成功&…

校园博客系统 |基于springboot框架+ Mysql+Java的校园博客系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究…

MySQL语法分类 DDL(1)

DDL&#xff08;1&#xff09;(操作数据库、表) 数据库操作(CRUD) C(Create):创建 //指定字符集创建 create database db_1 character set utf8;//避免重复创建数据库报错可以用一下命令 create database if not exists db_1 character set utf8;R(Retrieve):查询 //查询所…

电源适配器

电源适配器 1. 选购指南2. 接口测量方法3. 电源接口4. 抗干扰磁环&#xff0c;稳定输出References 1. 选购指南 插头尺度相同&#xff0c;供电电压 (V) 相同&#xff0c;电流 (A) > 原来的电流 (A) INPUT (输入)&#xff0c;OUTPUT (输出) 2. 接口测量方法 3. 电源接口 外…

ARM和AMD介绍

一、介绍 ARM 和 AMD 都是计算机领域中的知名公司&#xff0c;它们在不同方面具有重要的影响和地位。 ARM&#xff08;Advanced RISC Machine&#xff09;&#xff1a;ARM 公司是一家总部位于英国的公司&#xff0c;专注于设计低功耗、高性能的处理器架构。ARM 架构以其精简指…

HCIP—BGP邻居关系建立实验

BGP的邻居称为&#xff1a;IBGP对等体 EBGP对等体 1.EBGP对等体关系&#xff1a; 位于 不同自治系统 的BGP路由器之间的BGP对等体关系 EBGP对等体一般使用 直连建立 对等体关系&#xff0c;EBGP邻居之间的报文 TTL中值设置为1 两台路由器之间建立EBGP对等体关系&#xff0…

Python Web开发记录 Day12:Django part6 用户登录

名人说&#xff1a;东边日出西边雨&#xff0c;道是无晴却有晴。——刘禹锡《竹枝词》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、登录界面2、用户名密码校验3、cookie与session配置①cookie与session②配置…

【机器学习-02】矩阵基础运算---numpy操作

在机器学习-01中&#xff0c;我们介绍了关于机器学习的一般建模流程&#xff0c;并且在基本没有数学公式和代码的情况下&#xff0c;简单介绍了关于线性回归的一般实现形式。不过这只是在初学阶段、为了不增加基础概念理解难度所采取的方法&#xff0c;但所有的技术最终都是为了…

【01】htmlcssgit

01-前端干货-html&css 防脱发神器 一图胜千言 使用border-box控制尺寸更加直观,因此,很多网站都会加入下面的代码 * {margin: 0;padding: 0;box-sizing: border-box; }颜色的 alpha 通道 颜色的 alpha 通道标识了色彩的透明度,它是一个 0~1 之间的取值,0 标识完全…

C语言之快速排序

目录 一 简介 二 代码实现 快速排序基本原理&#xff1a; C语言实现快速排序的核心函数&#xff1a; 三 时空复杂度 A.时间复杂度 B.空间复杂度 C.总结&#xff1a; 一 简介 快速排序是一种高效的、基于分治策略的比较排序算法&#xff0c;由英国计算机科学家C.A.R. H…

【Machine Learning】Suitable Learning Rate in Machine Learning

一、The cases of different learning rates: In the gradient descent algorithm model: is the learning rate of the demand, how to determine the learning rate, and what impact does it have if it is too large or too small? We will analyze it through the follow…