曼哈顿距离与欧几里得距离

一、曼哈顿距离

曼哈顿距离又叫L1距离,它是点在坐标系上的曼哈顿距离。对于平面上的两个点(x1, y1)和(x2, y2),它们之间的曼哈顿距离是|x1-x2|+|y1-y2|,也就是横向和纵向距离各自相加的值。

曼哈顿距离可以用于解决很多实际问题,例如出租车在城市里行驶的费用问题。在一个网格状道路的城市中,出租车需要按照交通规则行驶,不能直线行驶,所以到达目的地的最短距离并不一定是直线距离。因此我们可以在城市中以红绿灯、标志、路口等为网格,以曼哈顿距离作为距离,来求得出租车到达目的地的最短距离。

def manhattan_distance(point1, point2):
    return abs(point1[0]-point2[0]) + abs(point1[1]-point2[1])

二、欧几里得距离

欧几里得距离又叫L2距离,是点在坐标系上的直线距离。对于平面上的两个点(x1, y1)和(x2, y2),它们之间的欧式距离是√((x1-x2)²+(y1-y2)²)。

欧几里得距离可以用于解决很多实际问题,例如机器学习中的KNN(K-Nearest Neighbors)分类算法。在KNN算法中,我们需要找到距离输入数据最近的K个数据点,然后按照这K个数据点所属的类别,来确定输入数据的类别。此时我们就可以使用欧几里得距离来计算数据点之间的距离,以确定哪些数据点是最近的。

import math

def euclidean_distance(point1, point2):
    return math.sqrt((point1[0]-point2[0])**2 + (point1[1]-point2[1])**2)

三、曼哈顿距离与欧几里得距离的比较

曼哈顿距离和欧几里得距离都是常用的距离度量。相比之下,曼哈顿距离更适合用于计算网格状的数据结构,如城市街道,棋盘等;欧几里得距离更适合用于连续空间的数据结构,如三维坐标、时间序列等。曼哈顿距离更容易计算,但它忽略了直线距离的影响;欧几里得距离更准确,但计算量相对较大。

def compare_distance(point1, point2):
    manhattan_dis = manhattan_distance(point1, point2)
    euclidean_dis = euclidean_distance(point1, point2)
    if manhattan_dis > euclidean_dis:
        print("欧几里得距离更优")
    elif manhattan_dis == euclidean_dis:
        print("曼哈顿距离和欧几里得距离等效")
    else:
        print("曼哈顿距离更优")

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/242786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:52
下一篇 2024-12-12 12:52

相关推荐

  • 马氏距离计算实例详解

    马氏距离是一种常见的数据分析算法,主要用于测量两个样本集的相似度。相较于欧几里得距离,马氏距离考虑了不同特征之间的相关性,并使用协方差矩阵来对特征进行权重调整。本文将深入探讨如何使…

    编程 2025-04-13
  • 编辑距离详解

    编辑距离(Levenshtein distance),指的是将一个字符串转换成另一个字符串所需的最少编辑操作次数,可用于量化两个字符串之间的相似度。本文将从多个方面对编辑距离进行详…

    编程 2025-02-24
  • Tomcat-juli.jar全面解析

    一、tomcat-juli.jar是什么? Tomcat是Apache基金会下的一个开源的Web服务器,tomcat-juli.jar是Tomcat自带的日志库。 它通过封装JUL…

    编程 2025-02-05
  • Bray-Curtis距离

    一、什么是Bray-Curtis距离? Bray-Curtis距离是生态学中常用的一种距离测量方法,用于计算样本之间的相似性。通常用于对物种组成进行比较,例如不同环境中的动植物群落…

    编程 2025-02-01
  • cad复制距离怎么设置,cad复制到指定距离

    本文目录一览: 1、cad复制平移一定距离 2、CAD把一条直线如何复制移动自己想要的距离? 3、模型云CAD教程-CAD软件怎样等距离复制线条图形? 4、在CAD里如何复制加移动…

    编程 2025-01-14
  • JS获取滚动条距离顶部的距离

    JS获取滚动条距离顶部的距离其实就是获取浏览器滚动条已经滚动的高度。在实际的开发中,我们有时会需要根据滚动条距离顶部的距离,来控制一些元素的显示和隐藏、加载更多数据等等操作。 一、…

    编程 2025-01-07
  • php时间相差8个小时问题,php时间距离现在

    本文目录一览: 1、php date.timezone = Asia/Shanghai ,设置 了,为什么还是差8个小时 2、php 中的时间为什么慢8个小时 3、php中time…

    编程 2024-12-25
  • 使用Java计算两个经纬度之间的距离

    地球经度和纬度的距离在地球表面上并不是简单的直线距离,而是大圆弧的长度。因此,计算两个全球位置之间的距离需要使用数学公式。在Java中,有几种方法可以准确地计算两点之间的距离,几乎…

    编程 2024-12-24
  • 深入探讨bray-curtis距离

    一、braycurtis距离矩阵 bray-curtis距离是一种广泛用于生态学、环境科学等领域的距离度量方法。它通过比较两个样本中物种组成的差异程度来衡量它们的相似程度。在实际应…

    编程 2024-12-24
  • 使用C++计算两点之间的距离

    一、计算公式 计算两点之间的距离需要使用勾股定理,即: d = √((x2-x1)²+(y2-y1)²) 其中,d表示两点之间的距离,(x1,y1)和(x2,y2)分别表示两个点的…

    编程 2024-12-23

发表回复

登录后才能评论