六大距离:欧式距离、街道距离、马氏距离等

article/2025/8/30 18:27:14

文章目录

  • 1 简 介
  • 2 距离特征
    • 2.1 Euclidean距离
    • 2.2 Cosine距离
    • 2.3 manhattan距离
    • 2.4 chebyshev距离
    • 2.5 minkowski距离
    • 2.6 mahalanobis距离
  • 3 代 码实现

1 简 介

数值向量是数据建模问题中最为常见的一类特征,例如:
在一些涉及图片,文本信息等的场景中,例如图片相似度匹配查询、相似文章寻找、同款商品定位等等问题中,为了能快速进行搜索匹配,我们往往会都会将图片文本等信息转化为数值向量;
在搜索推荐等的多流程建模工作中,上游经常会将一些数值向量特征输送到下游,最常见的就是图片向量信息、上游各个模型的预测分数拼接而成的向量。
那么如何基于这些生成的向量继续加工构建更多有用的特征呢?方式有很多,例如聚类;求统计特征等等。本文将会介绍一类基于数值特征向量的一整套距离特征。

2 距离特征

2.1 Euclidean距离

欧几里得距离也就是两个数值向量点之间的长度,其数学公式如下:
在这里插入图片描述
从其数学公式上我们可以发现:

  • 欧几里得距离会受到数值向量的量纲大小的影响,所以最好在计算距离之前先对数据进行归一化处理;
  • 欧几里得距离在向量维度非常大的时候效果会大大下降;

2.2 Cosine距离

Cosine距离在高维度空间中往往会比欧几里得距离的效果要好很多,Cosine距离的数学计算形式如下:
在这里插入图片描述

从其数学公式上我们可以发现:

  • Cosine距离在计算的时候已经做了类似归一化的操作,所以我们无序在计算其之前再做归一化等预处理;
  • Cosine距离不会考虑向量的大小,所以两个向量及时同时缩放一定的倍数,计算得到的大小也是一样的;

2.3 manhattan距离

manhattan距离有时也被成为街道距离,因为它的计算方式有点类似于只能90度拐角的街道长度,manhattan距离在高维度的空间有的时候可以取得比欧几里得距离更好的效果,其对应的数学式子如下:
在这里插入图片描述

2.4 chebyshev距离

chebyshev距离是两个数值向量在单个维度上绝对值差值最大的那个值,chebyshev距离在一些较为特殊的场景中物理意义很大,

例如:我们现在需要组装一个物品,但是需要很多零件,每个零件在不同的地方,需要邮寄过来,这个时候chebyshev距离就是需要的最短时间;

chebyshev距离其对应的数学计算式如下:
在这里插入图片描述

2.5 minkowski距离

minkowski距离计算公式如下:
在这里插入图片描述

我们发现欧几里得距离,manhattan距离和chebyshev距离都是其特殊的例子,而minkowski距离最大的优势在于:

  • 我们可以调整p值的取值,在此基础上寻找最优的p值用于最终的预测。
  • 在进行距离计算之前,一般需要对向量进行归一化操作;

2.6 mahalanobis距离

Mahalanobis(马氏)距离可以看作是欧氏距离的一种修正,修正了欧式距离中各个维度尺度不一致且相关的问题。
其中

是多维随机变量的协方差矩阵,马氏距离在涉及到距离计算的问题中,都是非常不错的特征。

3 代 码实现

import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
from sklearn.neighbors import DistanceMetric
from sklearn.metrics.pairwise import cosine_similarity## 随机生成两个向量,vec1,vec2
vec1 = np.random.normal(size = 1000)
vec2 = np.random.normal(size = 1000)

3.1 Euclidean距离

dist = DistanceMetric.get_metric('euclidean')
dist.pairwise([vec1,vec2])[0,1]

46.0531806254225

3.2 Cosine距离

cosine_similarity([vec1,vec2])[0,1]

-0.012651236859499773

3.3 manhattan距离

dist = DistanceMetric.get_metric('manhattan')
dist.pairwise([vec1,vec2])[0,1]

1165.7413956018454

3.4 chebyshev距离

dist = DistanceMetric.get_metric('chebyshev')
dist.pairwise([vec1,vec2])[0,1]

4.713077519584598

3.5 minkowski距离

dist = DistanceMetric.get_metric('minkowski', p=1)
dist.pairwise([vec1,vec2])[0,1]

1165.7413956018454


http://chatgpt.dhexx.cn/article/UWpEZvrq.shtml

相关文章

马氏距离例题详解(全网最详细)

马氏距离例题详解 定义 马哈拉诺比斯距离是由印度统计学家马哈拉诺比斯 (英语)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带…

浅谈马氏距离【Mahalonobis Distance】

浅谈马氏距离【Mahalonobis Distance】 1. Introduction2. 欧式距离对于多元数据会存在一些什么问题?3 .什么是马氏距离4.马氏距离背后的数学和intuition5. 利用python来计算马氏距离6. Case1: 使用马氏距离进行多元异常值检测7. Case 2: 对分类问题应用马氏距离8. …

距离度量之马氏距离

马氏距离 用来度量一个样本点P与数据分布为D的集合的距离。 假设样本点为: 数据集分布的均值为: 协方差矩阵为S。 则这个样本点P与数据集合的马氏距离为: 马氏距离也可以衡量两个来自同一…

马氏距离(Mahalanobis Distance)介绍与实例

本文介绍马氏距离(Mahalanobis Distance),通过本文,你将了解到马氏距离的含义、马氏距离与欧式距离的比较以及一个通过马氏距离进行异常检测的例子(基于Python的sklearn包)。 目的 计算两个样本间的距离时…

马氏距离-Mahalanobis Distance

一、学习目的 在训练one-shoting learning 的神经网路的时候,由于采用的是欧式距离,欧氏距离虽然很有用,但也有明显的缺点。它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实…

欧氏距离与马氏距离

Preface 之前在写《Multi-view CNNs for 3D Objects Recognition》的阅读笔记的时候,文章中的一个创新点便是将MVCNN网络提取到的3D Objects的形状特征描述符,投影到马氏距离(Mahalanobis Distance)上,“这样的话&…

马氏距离 Mahalanobis Distance

马氏距离 Mahalanobis Distance 1. 马氏距离定义2. 马氏距离实际意义2.1 欧氏距离近就一定相似?2.2 归一化后欧氏距离就一定相似?2.3 算上维度的方差就够了? 3. 马氏距离的几何意义4. 马氏距离的推导5. 马氏距离限制 Reference: 马氏距离(Mah…

马氏距离概念

马氏距离 一、基本概念: 方差:方差是标准差的平方,而标准差的意义是数据集中各个点到均值点距离的平均值。反应的是数据的离散程度。 协方差:标准差与方差是描述一维数据的,当存在多维数据时,我们通常需要知…

马氏距离通俗理解

基础知识: 假设空间中两点x,y,定义: 欧几里得距离, Mahalanobis距离, 不难发现,如果去掉马氏距离中的协方差矩阵,就退化为欧氏距离。那么我们就需要探究这个多出来的因子究竟有什么含…

马氏距离Mahalanobis Distance实例

简介 如果按照欧氏距离去理解马氏距离,一定会迷惑一段时间。因为欧氏距离可以计算两个点之间的距离,而马氏距离是计算一个点距离一个聚类的距离。如果想通过马氏距离去计算某两个点之间的距离是行不通的。下面按照一般的套路介绍一下欧氏距离与马氏距离…

马氏距离详解

马氏距离详解 一、理性认知二、感性认知第一个例子第二个例子 三、实例认知四、公式推导推导过程 致谢 一、理性认知 马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个分布之间的距离。它是一种有效的计算两个未…

马氏距离(Mahalanobis Distance)

马氏距离(Mahalanobis Distance)是度量学习中一种常用的距离指标,同欧氏距离、曼哈顿距离、汉明距离等一样被用作评定数据之间的相似度指标。但却可以应对高维线性分布的数据中各维度间非独立同分布的问题。 什么是马氏距离 马氏距离(Mahalanobis Distance)是一种距离的度量,…

马氏距离详解(数学原理、适用场景、应用示例代码)

看了很多关于马氏距离(Mahalanobis Distance)的介绍,但是总感觉有一些地方不太清晰,所以结合数学公式、机器学习中的应用案例,从头梳理一下。 马氏距离实际上是欧氏距离在多变量下的“加强版”,用于测量点…

linux 配置swoole环境

linux 配置swoole环境 安装PHP wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --php_option 6 --phpcache_option 1 --reboot vim /usr/local/php/etc/php.ini 删除对exec函数…

ppp开启pap/chap认证

什么是pap? PAP 是 PPP 协议集中的一种链路控制协议,通过2次握手建立认证,对等结点持续重复发送 ID/ 密码(明文)给验证者。 什么是chap? CHAP通过三次握手验证被认证方的身份,在初始链路建立…

Ensp配置PPP CHAP认证

如图配置IP地址 启用 CHAP 认证&#xff0c;用户名/密码为&#xff1a;HuaWei/123456 确保RAR20-A和RAR20-B之间可以互通 按照如下步骤进行。 1&#xff09;配置IP地址&#xff0c;确保设备互通 <Huawei>system-view [Huawei]sysname RAR20-A [RAR20-A]in…

思科模拟器启用CHAP协议

chap使用密文格式发送chap认证信息&#xff0c;相比较pap的明文格式&#xff0c;更具有安全性。 添加s端口&#xff1a;先将路由器关闭&#xff0c;将HWIC-2T模块拖入卡槽&#xff0c;再将路由器开启 单向CHAP&#xff1a;R2为认证方 R1&#xff1a; hostname R1 …

H3C(27)——PAP与CHAP

1.PAP的单向认证 【R1】 <RouterA> system-view[RouterA] local-user userb class network [RouterA-luser-network-userb] password simple passb [RouterA-luser-network-userb] service-type ppp [RouterA-luser-network-userb] quit[RouterA] interface serial 1/0 …

ppp的chap认证报文原理以及细节

ppp的chap认证报文原理 chap认证&#xff1a; 1.验证方&#xff08;存有本地数据库的一方&#xff09;主动向被验证方发送一个挑战报文&#xff0c;里面包含报文id&#xff0c;随机数&#xff0c;本端用户名&#xff08;默认单向认证不带&#xff09;。 2.被验证方收到挑战请求…

Cisco(56)——PAP和CHAP

说明:R1,R3,R5,R7,R9的S1/1的地址为1.1.1.1/24,R2,R4,R6,R8,R10的S1/1的地址为1.1.1.2/24,实验步骤省略配置hostname和IP地址的过程! 一:PAP的单向认证,R1为认证方 R1(config)#username R2 password 0 123R1(config)#interface serial 1/1 R1(config-if)#encapsulation …