计算两个数字向量u和v之间的距离函数

1,欧氏距离(Euclidean distance)

在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。使用这个距离,欧氏空间成为度量空间。计算公式为

二维空间中的欧氏距离:

三维空间中的欧式距离:

n维空间中的欧式距离:

x = [1, 0, 0]
y = [0, 1, 0]
dis = distance.euclidean(x, y)

2,曼哈顿距离(Manhattan/cityblock distance)

曼哈顿距离(Manhattan Distance)用以标明两个点在标准坐标系上的绝对轴距总和。曼哈顿距离的命名原因是从规划为方型建筑区块的城市(如曼哈顿)间,最短的行车路径而来(忽略曼哈顿的单向车道以及只存在于3、14大道的斜向车道)。任何往东三区块、往北六区块的的路径一定最少要走九区块,没有其他捷径。计算公式为:

如下图所示,红色表示曼哈顿距离,蓝色和黄色代表等价的曼哈顿距离。

x = [5, 3, 9]
y = [0, 1, 6]
dis = distance.cityblock(x, y)

3,坎贝拉距离(Canberra distance)

Canberra 距离是用来衡量两个向量空间的居间,是Manhattan 距离的加权版本,Canberra 距离已被用作比较排名列表和计算机安全中的入侵检测的测量。

x = [1, 2, 0]
y = [0, 1, 0]
dis = distance.canberra(x, y)

4,切比雪夫距离(Chebyshev distance)

切比雪夫距离(Chebyshev distance)是向量空间中的一种度量,二个点之间的距离定义是其各坐标数值差绝对值的最大值。以数学的观点来看,切比雪夫距离是由一致范数(uniform norm)(或称为上确界范数)所衍生的度量,也是超凸度量(injective metric space)的一种。计算公式为

x = [5, 3, 9]
y = [0, 1, 6]
dis = distance.chebyshev(x, y)

5,相关系数距离(Correlation distance)

相关系数距离是1与相关系数的差,相关系数的定义为

常见的Pearson相关性系数即为

Pearson相关距离为

x = [5, 3, 9]
y = [0, 1, 6]
dis = distance.correlation(x, y)

6,余弦相似度距离(Cosine distance)

余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。这结果是与向量的长度无关的,仅仅与向量的指向方向相关。余弦相似度通常用于正空间,因此给出的值为0到1之间。

余弦相似度定义来自于欧几里得点积,点积定义如下

余弦相似度为:

余弦相似度距离为1与余弦相似度的差

x = [5, 3, 9]
y = [0, 1, 6]
dis = distance.cosine(x, y)

8,闵可夫斯基距离(Minkowski distance)

闵氏距离不是一种距离,而是一组距离的定义,将以下形式的距离都定义为Minkowski distance。

 或 

当  时,就是曼哈顿距离 当  时,就是欧氏距离 当  时,就是切比雪夫距离

x = [2, 0, 0]
y = [0, 1, 0]
dis = distance.minkowski(x, y, 2)

9,标准欧式距离(standardized Euclidean distance)

标准化欧氏距离是针对简单欧氏距离的缺点(量纲差异)而作的一种改进方案,标准化方法为

变换后标准欧式距离为

x = [1, 0, 0]
y = [0, 1, 0]
s = [0.1, 0.1, 0.1]
dis = distance.seuclidean(x, y, s)

10,平方欧式距离(squared Euclidean distance)

平方欧式距离是简单欧式距离每一项的平方,公式如下

x = [1, 0, 0]
y = [0, 1, 0]
dis = distance.sqeuclidean(x, y)

11,加权闵可夫斯基距离(Minkowski distance)

x = [1, 0, 0]
y = [0, 1, 0]
dis = distance.wminkowski(x, y, 2, np.ones(3))

12,Bray-Curtis 相异度

Bray-Curtis 相异度(Bray-Curtis dissimilarity)是生态学中用来衡量不同样地物种组成差异的测度,计算公式为:

x = [1, 2, 0]
y = [0, 1, 0]
dis = distance.braycurtis(x, y)

参考文档:

scipy.spatial.distance

机器学习常用距离的定义和计算

Scipy 学习第3篇:数字向量的距离计算的更多相关文章

  1. 【Python学习】指定两点地理位置经纬度的距离计算

    指定两点地理位置经纬度的距离计算 #coding=utf-8 from math import * # input Lat_A 纬度A # input Lng_A 经度A # input Lat_B ...

  2. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

  3. Python3学习(1)-基础篇

    Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...

  4. 学习KnockOut第二篇之Counter

                                                                        学习KnockOut第二篇之Counter        欲看此 ...

  5. PHP学习笔记 - 进阶篇(11)

    PHP学习笔记 - 进阶篇(11) 数据库操作 PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Syba ...

  6. PHP学习笔记 - 进阶篇(10)

    PHP学习笔记 - 进阶篇(10) 异常处理 抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被 ...

  7. PHP学习笔记 - 进阶篇(8)

    PHP学习笔记 - 进阶篇(8) 日期与时间 取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间与日期的一个很重要的概念,它表示从 1970年1月1日 0 ...

  8. PHP学习笔记 - 进阶篇(4)

    PHP学习笔记 - 进阶篇(4) 字符串操作 字符串介绍 PHP开发中,我们遇到最多的可能就是字符串. 字符串变量用于包含字符串的值. 一个字符串 通过下面的3种方法来定义: 1.单引号 2.双引号 ...

  9. PHP学习笔记 - 进阶篇(5)

    PHP学习笔记 - 进阶篇(5) 正则表达式 什么叫正则表达式 正则表达式是对字符串进行操作的一种逻辑公式,就是用一些特定的字符组合成一个规则字符串,称之为正则匹配模式. $p = '/apple/' ...

随机推荐

  1. java实现详细的身份证验证、能正确验证身份证正确性

    IdCardExpUtil.java package com.javazs.util; import java.text.ParseException; import java.text.Simple ...

  2. jpa基础知识掌握-分页-sql

    https://blog.csdn.net/liuchuanhong1/article/details/52042477

  3. js简单数据类型和复杂数据类型

    var timer = null;  //简单数据类型null 返回的是一个空的对象 object console.log(typeof timer); 1.简单数据类型 在内存中存放在栈中,在里面开 ...

  4. C++中数组作为形参的方法

    转载:https://blog.csdn.net/qq_33374294/article/details/90769668 原链接:https://www.cnblogs.com/abella/p/1 ...

  5. Camera光学、成像和 3A 算法 (视觉),camera开发

    简单介绍 转载:https://blog.csdn.net/ShareUs/article/details/94295628 成像与光学.计算机视觉,图像处理,数字成像.自动驾驶与视觉. 镜头设计:人 ...

  6. 可能是东半球第二好用的软件工具全部在这里(update in 2020.10.09)

    1. 产品经理工具种草 浏览器:Google Chrome 网络浏览器 原型绘制软件:墨刀- 在线产品原型设计与协作平台(https://modao.cc/).摹客mockplus - 摹客,让设计和 ...

  7. 在Windows7系统中设置虚拟内存大小

    当我们的电脑物理内存空间不够用时,操作系统就会自动从硬盘空间上分出一块空间来当内存使用,这就是虚拟内存.可以说虚拟内存是物理内存的补充,是备用的物理内存.一般来说,如果电脑里的程序不多,占用内存资源不 ...

  8. MeteoInfoLab脚本示例:站点数据绘制等值线

    站点数据绘制等值线需要首先将站点数据插值为格点数据,MeteoInfo中提供了反距离权法(IDW)和cressman两个方法,其中IDW方法可以有插值半径的选项.这里示例读取一个MICAPS第一类数据 ...

  9. 扫描仪扫描文件处理-ABBYY自动矫正图像歪斜

    修改界面语言: 设置为不识别图片文字(因为我们只需要把图片歪斜校正): 保存无损彩色格式:

  10. go视频提取音频

    package main import ( "bytes" "fmt" "log" "os" "os/exec ...