曼哈顿算法公式_计算机领域各种距离计算公式
目录
1. 欧氏距离
最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中,如点 x = (x1,...,xn) 和 y = (y1,...,yn) 之间的距离为:
其上,二维平面上两点欧式距离,代码可以如下编写:
//unixfy:计算欧氏距离
doubleeuclideanDistance(constvector<double>&v1, constvector<double>&v2)
{
assert(v1.size()== v2.size());
doubleret = 0.0;
for(vector<double>::size_typei = 0; i != v1.size(); ++i)
{
ret+= (v1[i] - v2[i]) * (v1[i] - v2[i]);
}
returnsqrt(ret);
}
2. 曼哈顿距离
我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。例如在平面上,坐标(x1,y1)的点P1与坐标(x2, y2)的点P2的曼哈顿距离为:
,要注意的是,曼哈顿距离依赖座标系统的转度,而非系统在座标轴上的平移或映射。
通俗来讲,想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。而实际驾驶距离就是这个“曼哈顿距离”,此即曼哈顿距离名称的来源,同时,曼哈顿距离也称为城市街区距离(CityBlock distance)。
3. 切比雪夫距离
若二个向量或二个点p 、and q,其座标分别为
及
,则两者之间的切比雪夫距离定义如下:
,
这也等于以下Lp度量的极值:
,因此切比雪夫距离也称为L∞度量。
以数学的观点来看,切比雪夫距离是由一致范数(uniform norm)(或称为上确界范数)所衍生的度量,也是超凸度量(injectivemetric space)的一种。
在平面几何中,若二点p及q的直角坐标系坐标为
及
,则切比雪夫距离为:
。
玩过国际象棋的朋友或许知道,国王走一步能够移动到相邻的8个方格中的任意一个。那么国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?。你会发现最少步数总是max(| x2-x1 | , | y2-y1 | ) 步 。有一种类似的一种距离度量方法叫切比雪夫距离。
4. 闵可夫斯基距离(Minkowski Distance)
闵氏距离不是一种距离,而是一组距离的定义。
5. 标准化欧氏距离 (Standardized Euclidean distance )
标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。至于均值和方差标准化到多少,先复习点统计学知识。
假设样本集X的数学期望或均值(mean)为m,标准差(standard deviation,方差开根)为s,那么X的“标准化变量”X*表示为:(X-m)/s,而且标准化变量的数学期望为0,方差为1。
即,样本集的标准化过程(standardization)用公式描述就是:
标准化后的值 = ( 标准化前的值 - 分量的均值 ) /分量的标准差
经过简单的推导就可以得到两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的标准化欧氏距离的公式:
如果将方差的倒数看成是一个权重,这个公式可以看成是一种加权欧氏距离(Weighted Euclidean distance)。
6. 马氏距离(Mahalanobis Distance)
马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。
(1)马氏距离定义
有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:
(协方差矩阵中每个元素是各个矢量元素之间的协方差Cov(X,Y),Cov(X,Y) =E{ [X-E(X)] [Y-E(Y)]},其中E为数学期望)
而其中向量Xi与Xj之间的马氏距离定义为:
若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:
也就是欧氏距离了。
若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。
(2)马氏距离的优缺点:量纲无关,排除变量之间的相关性的干扰。
「微博上的seafood高清版点评道:原来马氏距离是根据协方差矩阵演变,一直被老师误导了,怪不得看Killian在05年NIPS发表的LMNN论文时候老是看到协方差矩阵和半正定,原来是这回事」
7、巴氏距离(Bhattacharyya Distance)
在统计中,Bhattacharyya距离测量两个离散或连续概率分布的相似性。它与衡量两个统计样品或种群之间的重叠量的Bhattacharyya系数密切相关。Bhattacharyya距离和Bhattacharyya系数以20世纪30年代曾在印度统计研究所工作的一个统计学家A. Bhattacharya命名。同时,Bhattacharyya系数可以被用来确定两个样本被认为相对接近的,它是用来测量中的类分类的可分离性。
8. 汉明距离(Hamming distance)
两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。例如字符串“1111”与“1001”之间的汉明距离为2。应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。//动态规划:
//f[i,j]表示s[0...i]与t[0...j]的最小编辑距离。
f[i,j] = min { f[i-1,j]+1, f[i,j-1]+1, f[i-1,j-1]+(s[i]==t[j]?0:1) }
//分别表示:添加1个,删除1个,替换1个(相同就不用替换)。
9. 夹角余弦(Cosine)
几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。
10. 杰卡德相似系数(Jaccard similarity coefficient)
11.皮尔逊系数(Pearson Correlation Coefficient)
在具体阐述皮尔逊相关系数之前,有必要解释下什么是相关系数 ( Correlation coefficient )与相关距离(Correlation distance)。
相关系数 ( Correlation coefficient )的定义是:
(其中,E为数学期望或均值,D为方差,D开根号为标准差,E{ [X-E(X)] [Y-E(Y)]}称为随机变量X与Y的协方差,记为Cov(X,Y),即Cov(X,Y) = E{ [X-E(X)] [Y-E(Y)]},而两个变量之间的协方差和标准差的商则称为随机变量X与Y的相关系数,记为
)
相关系数衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。
具体的,如果有两个变量:X、Y,最终计算出的相关系数的含义可以有如下理解:当相关系数为0时,X和Y两变量无关系。
当X的值增大(减小),Y值增大(减小),两个变量为正相关,相关系数在0.00与1.00之间。
当X的值增大(减小),Y值减小(增大),两个变量为负相关,相关系数在-1.00与0.00之间。
相关距离的定义是:
我们发现以上的数据特意选定为完全相关: y = 0.10 + 0.01 x。于是,皮尔逊相关系数应该等于1。将数据中心化 (通过E(x) = 3.8移动 x 和通过 E(y) = 0.138 移动 y ) 得到 x = (−2.8, −1.8, −0.8, 1.2, 4.2) 和 y = (−0.028, −0.018, −0.008, 0.012, 0.042), 从中
(4)皮尔逊相关的约束条件
从以上解释, 也可以理解皮尔逊相关的约束条件:1 两个变量间有线性关系
2 变量是连续变量
3 变量均符合正态分布,且二元分布也符合正态分布
4 两变量独立
在实践统计中,一般只输出两个系数,一个是相关系数,也就是计算出来的相关系数大小,在-1到1之间;另一个是独立样本检验系数,用来检验样本一致性。
简单说来,各种“距离”的应用场景简单概括为,空间:欧氏距离,路径:曼哈顿距离,国际象棋国王:切比雪夫距离,以上三种的统一形式:闵可夫斯基距离,加权:标准化欧氏距离,排除量纲和依存:马氏距离,向量差距:夹角余弦,编码差别:汉明距离,集合近似度:杰卡德类似系数与距离,相关:相关系数与相关距离
曼哈顿算法公式_计算机领域各种距离计算公式相关推荐
- 曼哈顿算法公式_距离计算方法总结
计算推荐对象的内容特征和用户模型中兴趣特征二者之间的相似性是推荐算法中一个关键部分 ,相似性的度量可以通过计算距离来实现 在做很多研究问题时常常需要估算不同样本之间的相似性度量(Similarity ...
- 曼哈顿算法公式_距离计算方法总结 | Public Library of Bioinformatics
在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的"距离"(Distance).采用什么样的方法计算 ...
- 数据结构经典案例_计算机领域必读的经典书籍清单
由于计算机科学是一个庞大的学科体系,在学习的过程中要对这个体系的知识都有一定的了解,下面按照分类和体系进行说明,以及推荐一些书籍清单. 先来一段坊间流传的打油诗(手动狗头保命),可见算法和数据结构有多 ...
- acl 影响因子_计算机领域EI和SCI收录期刊、影响因子及国际会议
计算机相关专业EI及SCI国际会议及期刊汇总1:供硕士生选择的相关刊物 序号刊物名称(以期刊名称的拼音为序) 总被引频次影响因子影响因子学科内排名 1 电子学报(英文版.中文版)1676 0.450 ...
- 计算机领域应用论文,GIS技术在计算机领域的应用_优秀论文
<GIS技术在计算机领域的应用_优秀论文>由会员分享,可在线阅读,更多相关<GIS技术在计算机领域的应用_优秀论文(8页珍藏版)>请在人人文库网上搜索. 1.GIS技术在计算机 ...
- 看不到工作组的其他计算机_就这一次,从现实世界的角度去理解计算机领域的知识(给新手)...
这篇文章的阅读对象是计算机专业在读及刚进入工作一年左右的的同学,文章措辞也许不太严谨,主要目的是为了让大家更容易理解. 01 便利店背后的"系统" "系统"这个 ...
- 在计算机领域中通常用英语单词bit来表示,1在计算机领域中,通常用英文单词“byte”来表示_。...
1.在计算机领域中,通常用英文单词"byte"来表示_. A. 字 B. 字长 C. 字节 D. 二进制位 2.在Windows中,同时显示多个应用程序窗口的正确方法是_. A. ...
- 等效距离计算公式_实用的计算方法-架空输电线路导线线间距离计算
1. 10kV 及以下架空线路导线线间距离 380V及以下沿墙敷设的绝缘导线,当档距不大于20m时,其线间距离不宜小于0.2m:3kV以下架空线路,靠近杆塔的两导线间的水平距离不应小于0.5m:10k ...
- 在计算机领域做研究的一些想法-- 转载
本文关于米国CS计算机的介绍实在是太可爱了,不得不收藏,感谢 Xi Tan # 前言 # 1. 讨论一下计算机领域的牛圈和'带头大哥': 2. 讨论一下科研方法: 3. 讨论一下计算机领域的学术论文( ...
最新文章
- 20年的嵌入式开发经验总结
- BSEG和BSIS、BSAS、BSID、BSAD、BSIK、BSAK六个表的关系
- 【String类、static、Arrays类、Math类】
- MySQL之权限索引学习整理
- hms能适配鸿蒙吗,国产手机即将抱团?魅族率先使用HMS服务,或多家国产适配鸿蒙!...
- .NET5 WPF进阶教程
- 《Python Cookbook 3rd》笔记(5.15):打印不合法的文件名
- 【数据库】navicat运行sql文件报错
- Python21天打卡Day11-dict和json格式互转
- 什么类型网站不利于seo优化
- 【硬件】串口422的DB9接法
- 中国人缺乏纯粹信仰 社会充满唯经济主义导向
- 怎么把计算机放到硬盘里,如何将电脑的机械硬盘变成固态硬盘【详细步骤】
- 计算机辅助英语词汇教学,计算机与网络辅助大学英语词汇教学
- 互联网(软件)公司项目管理软件调研报告
- 什么是反向代理,如何区别反向与正向代理
- 【WCN685X】WCN6856 5G吞吐量测试只有25Mbps问题原因分析及解决方案
- 有糖如何用777元指纹手机完善大社交生态?
- 台达服务器XML文件,台达BA OPC XML DA使用方法 - 副本.docx
- 关于[No mapping found for HTTP request with URI]的问题解决方法
热门文章
- 推荐大家一个管理时间的软件
- mysql怎么写主外键_mysql主外键约束怎么写?
- 为您的零件选择合适的机器人机械手夹爪
- python 3.4.3 下载安装与环境配置 pip
- tomcat卸载与安装
- 网络安全防护相关几个术语整理
- 游戏运维linux,Linux运维知识之Linux的10个游戏
- OC中@interface、@implementation、@protocal
- 关于梦想是计算机的作文英语,【关于梦想的英语作文150字带翻译】_mydream英语作文150字(4篇)...
- 【基于视觉语义特征的室外SLAM建图算法研究】