距离度量方法——欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离

news2024/11/27 21:56:13

目录

一、 欧氏距离(Euclidean Distance)

1、简介

2、代码实现

二、曼哈顿距离(Manhattan Distance)

1、简介

2、代码实现

三、切比雪夫距离(Chebyshev Distance)

1、简介

2、代码实现

四、闵可夫斯基距离(Minkowski Distance)

1、简介

2、代码实现


一、 欧氏距离(Euclidean Distance)

1、简介

  • 欧氏距离是最常见的距离度量方法之一。它衡量了两个点之间的直线距离。
  • 在二维空间中,欧氏距离可以用以下公式表示:
  • d(p,q) = \sqrt{\sum_{i=1}^{n}(p_i-q_i)^{2}},其中 p 和 q 是两个点的坐标,n 是维度数量。

2、代码实现

  • 计算两个二维点 p(1,2) 和 q(3,4) 之间的欧氏距离。
  • import math
    
    def euclidean_distance(p, q):
        distance = math.sqrt((p[0] - q[0])**2 + (p[1] - q[1])**2)
        return distance
    
    p = (1, 2)
    q = (3, 4)
    distance = euclidean_distance(p, q)
    print("欧氏距离:", distance)

二、曼哈顿距离(Manhattan Distance)

1、简介

  • 曼哈顿距离是衡量两点之间的城市街道距离,即沿着网格线的距离。
  • 在二维空间中,曼哈顿距离可以用以下公式表示:
    • d(p,q)=\sum_{i=1}^{n}|p_i-q_i|,其中 p 和 q 是两个点的坐标,n 是维度数量。

2、代码实现

  • 计算两个二维点 p(1,2) 和 q(3,4) 之间的曼哈顿距离。
  • def manhattan_distance(p, q):
        distance = abs(p[0] - q[0]) + abs(p[1] - q[1])
        return distance
    
    p = (1, 2)
    q = (3, 4)
    distance = manhattan_distance(p, q)
    print("曼哈顿距离:", distance)

三、切比雪夫距离(Chebyshev Distance)

1、简介

  • 切比雪夫距离是衡量两个点在各个坐标轴上的最大差值。
  • 在二维空间中,切比雪夫距离可以用以下公式表示:
    • d(p,q)=max_i(|p_i-q_i|),其中 p 和 q 是两个点的坐标,n 是维度数量。

2、代码实现

  •  计算两个二维点 p(1,2) 和 q(3,4) 之间的切比雪夫距离。
  • def chebyshev_distance(p, q):
        distance = max(abs(p[0] - q[0]), abs(p[1] - q[1]))
        return distance
    
    p = (1, 2)
    q = (3, 4)
    distance = chebyshev_distance(p, q)
    print("切比雪夫距离:", distance)

四、闵可夫斯基距离(Minkowski Distance)

1、简介

  • 闵可夫斯基距离是欧氏距离和曼哈顿距离的一般化形式。
  • 闵可夫斯基距离可以表示为: 
    • d(p,q)=(\sum_{i=1}^{n}|p_i-q_i|^{r})^{\frac{1}{r}},其中 p 和 q 是两个点的坐标,n 是维度数量,r 是一个非负整数。
    • 当 r=1 时,它等同于曼哈顿距离;当 r=2 时,等同于欧氏距离。

2、代码实现

  • 计算两个二维点 p(1,2) 和 q(3,4) 之间的闵可夫斯基距离。
  • def minkowski_distance(p, q, r):
        distance = sum(abs(p[i] - q[i])**r for i in range(len(p)))**(1/r)
        return distance
    
    p = (1, 2)
    q = (3, 4)
    r = 2  # 欧氏距离
    distance = minkowski_distance(p, q, r)
    print("闵可夫斯基距离 (r={}):".format(r), distance)
    
    r = 1  # 曼哈顿距离
    distance = minkowski_distance(p, q, r)
    print("闵可夫斯基距离 (r={}):".format(r), distance)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1578001.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

element-ui 在Popover弹框中使用Select选择器,Vue3

bug描述: 当选择完select的时候,popover也会退出。 解决: popover组件的的关闭是当点击组件外的元素时会关闭,select虽然是写在组件内的,但是select有一个默认属性teleported“true” 会把它默认插到 body 元素,我…

C++ //练习 11.22 给定一个map<string, vector<int>>,对此容器的插入一个元素的insert版本,写出其参数类型和返回类型。

C Primer&#xff08;第5版&#xff09; 练习 11.22 练习 11.22 给定一个map<string, vector<int>>&#xff0c;对此容器的插入一个元素的insert版本&#xff0c;写出其参数类型和返回类型。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具…

MySQL高级篇(B-Tree、Btree)

目录 1、Btree&#xff08;B-Tree&#xff09; 1.1、B-Trees的特点 二叉树缺点&#xff1a;顺序插入时&#xff0c;会形成一个链表&#xff0c;查询性能大大降低。大数据量情况下&#xff0c;层级较深&#xff0c;检索速度慢。红黑树&#xff1a;大数据量情况下&#xff0c;层…

Qt+VS2019中使用QAxObject时的环境配置

在纯Qt中 在.pro中添加axcontainer模块即可 而VSqt中&#xff1a; 特别傻的是&#xff1a;我运行的是release&#xff0c;但配置的是debug的属性页&#xff0c;一直报错&#xff0c;人都傻了。 最后发现果然是人傻。

如何远程监控员工的电脑

如何远程监控员工的电脑 为什么要对员工使用电脑的行为进行监控呢&#xff1f;对企业来说是有其必要性的。其必要性主要体现以下4个方面。 1.数据安全与知识产权保护 防止数据泄露&#xff1a;企业内部往往存储着大量的敏感信息&#xff0c;如客户数据、财务资料、商业秘密、…

推荐一款很强大的SCADA工业组态软件

可以广泛应用于化工、石化、制药、冶金、建材、市政、环保、电力等几十个行业。 I官网网站:www.hcy-soft.com |体验地址:http://www.byzt.net:60/sm/ 一、产品简介 BY组态是完全自主研发的集实时数据展示、动态交互等一体的全功能可视化平台。帮助物联网、工业互联网、电力能…

Hyper-v平台搭建pve系统之网络配置(双网卡、内外网分离)

现在我需要在我本地配置的PVE系统上配置双网卡&#xff0c;然后一个连接外部网络&#xff08;访问互联网&#xff09;&#xff0c;一个连接内部网络&#xff08;只能和宿主机之间互相访问&#xff09; 最终效果&#xff1a; 登录PVE平台&#xff0c;我可以正常访问外网&#…

信息工程大学第五届超越杯程序设计竞赛(同步赛)vp

目录 信息工程大学第五届超越杯程序设计竞赛&#xff08;同步赛&#xff09;_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A.遗失的旋律 C.财政大臣 D.实验室有多少人 E.在雾中寻宁静 F.不规则的轮回 G.完美数字 M.Monikas game A.遗失的旋律 思路&#xf…

Golang 开发实战day09 - package Scope

&#x1f3c6;个人专栏 &#x1f93a; leetcode &#x1f9d7; Leetcode Prime &#x1f3c7; Golang20天教程 &#x1f6b4;‍♂️ Java问题收集园地 &#x1f334; 成长感悟 欢迎大家观看&#xff0c;不执着于追求顶峰&#xff0c;只享受探索过程 Golang 教程09 - package Sc…

大学英语ab级题搜题软件?分享7个支持答案和解析的工具 #笔记#其他

合理利用学习辅助工具和资料&#xff0c;可以帮助大学生更好地组织学习内容、掌握知识点和提升学术水平。 1.智能翻译官 这是一款多语言在线翻译神器&#xff0c;除了最基础的英语以外&#xff0c;还支持日语、德语、俄语、法语等几十种语言文本翻译和拍照翻译&#xff0c;并…

Your file appears not to be a valid OLE2 document

前言 org.apache.poi.poifs.filesystem.NotOLE2FileException:Invalid header signature; read 0x0000000000000000, expected 0xE11AB1A1E011CFD0 - Your file appears not to be a valid OLE2 document解决 Excel兼容模式打开老版本文件造成文件损坏&#xff0c;大多说的是点…

期货量化交易软件:模式搜索的暴力方法(第六部分)循环优化

概述 考虑到我上一篇文章中的材料&#xff0c;我赫兹量化软件可以说这只是我在算法中引入的所有函数的肤浅描述。它们不仅涉及EA创建的完全自动化&#xff0c;还涉及诸如结果优化和选择的完全自动化以及随后用于自动交易&#xff0c;或者我赫兹量化稍后将展示的更先进的EA的创…

关于Ansible模块 ⑤

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 继《关于Ansible的模块 ①》、《关于Ansible的模块 ②》与《关于Ansible的模块 ③》之后&#xff0c;继续学习ansible常用模块之…

高效测试丨怿星RTP协议测试解决方案

近几年&#xff0c;车内音视频娱乐系统不断发展&#xff0c;功能不断丰富&#xff0c;对于音视频的传输需求也逐渐增多&#xff0c;随着车载以太网的日渐成熟&#xff0c;各主机厂逐步方案落地、成本逐步降低&#xff0c;基于车载以太网的音视频传输也在逐步应用&#xff0c;常…

python代码使用过程中使用快捷键注释时报错

1.代码 2.代码报错 3.代码注释后的结果 4. 原因

【C++进阶】哈希的应用之位图和布隆过滤器

位图和布隆过滤器 一&#xff0c;位图1. 实现2. 位图的应用 二&#xff0c;布隆过滤器1. 使用场景2. 模拟实现 三&#xff0c;海量数据面试题哈希切分 四&#xff0c;总结 这一节我们来看哈希的应用 一&#xff0c;位图 先来看一个面试题 这里如果用unordered_set来解决&…

程序员如何搞副业

目录 1.概述 2.个人项目开发 3.在线教育和培训 4.技术博客和内容创作 1.概述 程序员通过副业实现个人价值最大化和增加收入的途径多种多样&#xff0c;以下是一些方法&#xff1a; 自由职业: 程序员可以在业余时间提供自由职业服务。包括为客户开发软件、网站或应用程序、…

初学python记录:力扣2009. 使数组连续的最少操作数

题目&#xff1a; 给你一个整数数组 nums 。每一次操作中&#xff0c;你可以将 nums 中 任意 一个元素替换成 任意 整数。 如果 nums 满足以下条件&#xff0c;那么它是 连续的 &#xff1a; nums 中所有元素都是 互不相同 的。nums 中 最大 元素与 最小 元素的差等于 nums.…

java 开发环境配置 JAVA_HOME 和 MAVEN_HOME

java 开发环境配置 JAVA_HOME 和 MAVEN_HOME 介绍JAVA_HOMEMAVEN_HOME 配置环境1. 创建Java Home2. 创建Maven Home3. 设置环境变量4. 验证安装 没有 Maven 看这里 介绍 在Java和Maven的开发环境中&#xff0c;JAVA_HOME和MAVEN_HOME是非常重要的环境变量&#xff0c;它们帮助…

iOS 开发中上传 IPA 文件的方法(无需 Mac 电脑

引言 在 iOS 开发中&#xff0c;将 IPA 文件上传到苹果开发者中心是一个重要的步骤。通常情况下&#xff0c;我们需要使用 Mac 电脑上的 Xcode 或 Application Loader 工具来完成这个任务。然而&#xff0c;如果你没有 Mac 电脑&#xff0c;也没有关系&#xff0c;本文将介绍一…