曼哈顿距离简介

这篇文章深入浅出地介绍了曼哈顿距离的概念,源于曼哈顿岛的街道布局,用于二维和多维空间中的距离计算。通过实例解析了其公式并展示了与欧几里得距离的区别。

前言

维基百科上给的定义如下:

计程车几何(Taxicab geometry)或曼哈顿距离(Manhattan distance or Manhattan length)或方格线距离是由十九世纪的赫尔曼·闵可夫斯基所创辞汇,为欧几里得几何度量空间的几何学之用语,用以标明两个点上在标准坐标系上的绝对轴距之总和。

想象你在曼哈顿,要从一个十字路口开车到另外一个十字路口,实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源,曼哈顿距离也称为城市街区距离。

在上图中,绿线是欧几里得距离,红线是曼哈顿距离,蓝线和黄线是等价的曼哈顿距离。

二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离为:

d = | x1 - x2 | + |y1 - y2|

两个n维向量a(x11,x12,…,x1k)与 b(x21,x22,…,x2k)间的曼哈顿距离为:

 

本文转自:曼哈顿距离简介_迷途小书童的Note的博客-优快云博客

 

 

提供的引用内容未提及曼哈顿距离转化的方法和原理。曼哈顿距离本身是一种用于测量两个点在多维空间中的距离距离度量方法,得名于曼哈顿的街区布局,交叉点的距离通常通过水平和垂直路线测量[^1]。 一般而言,曼哈顿距离在二维空间中,对于两点 \(P_1(x_1,y_1)\) 和 \(P_2(x_2,y_2)\),其计算公式为 \(d = |x_1 - x_2|+|y_1 - y_2|\)。在多维空间中,若有两点 \(A=(a_1,a_2,\cdots,a_n)\) 和 \(B=(b_1,b_2,\cdots,b_n)\),曼哈顿距离 \(d=\sum_{i = 1}^{n}|a_i - b_i|\) 。 对于曼哈顿距离的转化,从原理上可能是为了适应特定的应用场景或算法需求。例如在某些机器学习算法中,可能需要将曼哈顿距离转化为一种更易于计算或比较的形式。一种常见的转化方式是归一化,原理是将距离值映射到一个特定的区间,如 \([0,1]\) ,方法可以使用最小 - 最大归一化,公式为 \(d_{normalized}=\frac{d - d_{min}}{d_{max}-d_{min}}\) ,其中 \(d\) 是原始的曼哈顿距离,\(d_{min}\) 和 \(d_{max}\) 分别是数据集中曼哈顿距离的最小值和最大值。 ```python import numpy as np def manhattan_distance(point1, point2): return np.sum(np.abs(np.array(point1) - np.array(point2))) def min_max_normalization(distance, min_distance, max_distance): return (distance - min_distance) / (max_distance - min_distance) # 示例数据 point_a = [1, 2, 3] point_b = [4, 5, 6] # 计算曼哈顿距离 distance = manhattan_distance(point_a, point_b) # 假设已知最小和最大距离 min_dist = 0 max_dist = 10 # 归一化曼哈顿距离 normalized_distance = min_max_normalization(distance, min_dist, max_dist) print("原始曼哈顿距离:", distance) print("归一化后的曼哈顿距离:", normalized_distance) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值