【数据挖掘】任务1:距离计算

举报
zstar 发表于 2022/08/05 23:52:29 2022/08/05
【摘要】 题目 给定两个被元组(22,1,42,10)和(20,0,36,8)表示的对象 (a)计算这两个对象之间的欧几里得距离; (b)计算这两个对象之间的曼哈顿距离; (c)使用q=3,计算这两个对象之...

题目

给定两个被元组(22,1,42,10)和(20,0,36,8)表示的对象

(a)计算这两个对象之间的欧几里得距离;

(b)计算这两个对象之间的曼哈顿距离;

(c)使用q=3,计算这两个对象之间的闵可夫斯基距离

(d)计算着两个对象之间的上确界距离

创建对象

a = (22, 1, 42, 10)
b = (20, 0, 36, 8)

欧氏距离

在这里插入图片描述

import numpy as np


def euclidean(x, y):
    return np.sqrt(sum((x[i] - y[i]) ** 2 for i in range(len(x))))
euclidean(a, b)
6.708203932499369

曼哈顿距离

在这里插入图片描述

在这里插入图片描述

def manhattan(x, y):
    return sum(np.abs(x[i] - y[i]) for i in range(len(x)))
manhattan(a, b)
11

闵可夫斯基距离

在这里插入图片描述

def minkowski(x, y, p):
    return sum(np.abs(x[i] - y[i]) ** p for i in range(len(x))) ** (1 / p)
minkowski(a, b, 3)
6.153449493663682

上确界距离

在这里插入图片描述

def Supremum(x, y):
    return np.abs(max(x) - max(y))
Supremum(a, b)
6

文章来源: zstar.blog.csdn.net,作者:zstar-_,版权归原作者所有,如需转载,请联系作者。

原文链接:zstar.blog.csdn.net/article/details/125568663

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。