快捷搜索:  汽车  科技

算法准确率如何计算(算法中的距离计算)

算法准确率如何计算(算法中的距离计算)可以计算出AB两点间的欧氏距离,是6 6=12用数学表达式来表示曼哈顿距离,假设有X1和X2两个维度,那么AB两点的曼哈度距离为网格表示街区,边框表示的是马路。我们只能走马路,不能穿越街区。每一格的长度设定为1,要计算从家到学校的最短路线,我们可以用到曼哈顿距离。什么是曼哈顿距离?曼哈顿距离(Manhattan Distance),也叫计程车几何 (Taxicab Geometry) 或者街区距离(City Block Distance),是由十九世纪的赫尔曼·闵可夫斯基所创的辞汇,为欧几里得几何度量空间的几何学用语,用以标明两个点上在标准坐标系上的绝对轴距之总和。如图中的红线表示的就是曼哈顿距离,也就是在横轴上的距离与在纵轴上的距离之和。

IT技术研习社,专注互联网技术研究与分享,喜欢的朋友可以点击【关注】;把经验传递给有梦想的人;

算法准确率如何计算(算法中的距离计算)(1)

1. 问题提出

我们都知道两点之间直线距离最近。比如AB两个点,从A到B的最短距离就是这条直线。

算法准确率如何计算(算法中的距离计算)(2)

如果我们想知道从家到学校之间的距离走哪条路最近,照刚才所说,直接连接家到学校的直线不就是最短路线吗?没错,如果你会飞这完全不是问题。然而事实我们走路或者开车是不能横穿街区中的建筑物的,只能走马路到达目的地。直线距离并不能作为我们实际距离的判断。

2.曼哈顿距离

我们把这个问题简化如下图表示:

算法准确率如何计算(算法中的距离计算)(3)

网格表示街区,边框表示的是马路。我们只能走马路,不能穿越街区。每一格的长度设定为1,要计算从家到学校的最短路线,我们可以用到曼哈顿距离。什么是曼哈顿距离?

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

算法准确率如何计算(算法中的距离计算)(4)

如图中的红线表示的就是曼哈顿距离,也就是在横轴上的距离与在纵轴上的距离之和。

算法准确率如何计算(算法中的距离计算)(5)

用数学表达式来表示曼哈顿距离,假设有X1和X2两个维度,那么AB两点的曼哈度距离为

算法准确率如何计算(算法中的距离计算)(6)

可以计算出AB两点间的欧氏距离,是6 6=12

3 欧氏距离

一开始我们提到的两点间的直线距离(图中黑色实线),这个距离叫欧几里得距离,又简称欧氏距离

在数学中,欧几里得距离(Euclidean Distance) 或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。

欧氏距离用数学表达是

算法准确率如何计算(算法中的距离计算)(7)

可以计算出AB两点间的欧氏距离,是

算法准确率如何计算(算法中的距离计算)(8)

算法准确率如何计算(算法中的距离计算)(9)

黑色直线表示的欧氏距离是唯一的,而表示曼哈顿距离除了红色的路径,蓝色和绿色路径同样也是表示的曼哈顿距离。

4.明可夫斯基距离

欧氏距离和曼哈顿距离看起来好像截然不同,其实不然。我们把式(2)的欧氏距离换一种表达方式

算法准确率如何计算(算法中的距离计算)(10)

这样曼哈顿距离和欧氏距离看起来就很相似了,其实这两个概念都是明可夫斯基距离的特殊形式。

明氏距离又叫做明可夫斯基距离(Minkowski Distance),是欧氏空间中的一种测度,被看做是欧氏距离和曼哈顿距离的一种推广。

对应上面二维平面的明可夫斯基距离表达式为

算法准确率如何计算(算法中的距离计算)(11)

可以看出,当P=1时,明可夫斯基距离就是曼哈顿距离;当P=2时,就是欧氏距离。

上面的公式都是2维的情况,我们拓展到n维,就是所有维度上的绝对差值的p次方之和,再开p次方

算法准确率如何计算(算法中的距离计算)(12)

5.距离度量的应用

在算法中需要用到距离的度量,来判断样本之间是不是相近。最常见要用到计算距离的机器学习算法有K近邻算法和聚类算法。应用式(5)计算两≠点(样本)间的距离,p值的选择是一个重要的关注点,通常我们会通过逐个搜索来查找最佳的p值。

除了这里介绍的距离度量方法,还有其他一些方法类似于计算距离,来计算样本的相似度。

IT技术研习社,专注互联网技术研究与分享,喜欢的朋友可以点击【关注】;把经验传递给有梦想的人;

算法准确率如何计算(算法中的距离计算)(13)

猜您喜欢: