距离产生美——机器学习常用距离numpy计算

这篇博客详细介绍了机器学习中常用的几种距离计算方法,包括欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离和余弦距离。通过numpy库在Python中实现了这些距离的计算,并探讨了它们在数据分析模型中的适用性。
摘要由CSDN通过智能技术生成

欢迎关注,敬请点赞!
面试题:各种距离计算两个样本向量的相似性
my_list1 = [5, 0, 3, 0, 2, 0, 0, 2, 0, 0]
my_list2 = [3, 0, 2, 0, 1, 1, 0, 1, 0, 1]
分别利用曼哈顿距离、欧氏距离、切比雪夫距离、闵可夫斯基距离、余弦距离计算二者之间的相似性。

〇、范数

返回顶部
范数

一、欧氏距离(Euclidean Distance)

返回顶部
欧几里得距离

1.定义:

欧氏距离(euclidean metric)(也称欧几里得度量,二范数)是通常采用的距离定义,指在m维空间中两个点之间的真实距离。在二维和三维空间中的欧氏距离就是两点之间的实际距离。

2.计算公式:

(1) 二维空间公式: d ( x , y ) = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 d(x, y) = \sqrt{(x_2 - x_1) ^2 + (y_2 - y_1)^2} d(x,y)=(x2x1)2+(y2y1)2

(2) 三维空间的公式: d ( x , y ) = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 + ( z 2 − z 1 ) 2 d(x, y) = \sqrt{(x_2 - x_1) ^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2} d(x,y)=(x2x1)2+(y2y1)2+(z2z1)2

(3) n维空间的公式: d ( x , y ) = ∑ i = 1 n ( x i − y i ) 2 d(x, y) = \sqrt{\displaystyle \sum_{i=1}^n{(x_i - y_i) ^2}} d(x,y)=i=1n(xiyi)2

3.numpy代码实现:

import numpy as np


vector1 = np.array([5, 0, 3, 0, 2, 0, 0, 2, 0, 0])
vector2 = np.array([3, 0, 2, 0, 1, 1, 0, 1, 0, 1])

print('euclidean_dist =', np.linalg.norm(vector1 - vector2))  # ord = 2

结果:

euclidean_dist = 3.0

4.适用的数据分析模型

欧氏距离能够体现个体数值特征的绝对差异,用于需要从维度的数值大小中体现差异的分析,如:

使用用户行为指标,分析用户价值的相似度或差异。

二、曼哈顿距离(Manhattan Distance)

返回顶部
曼哈顿距离
红 色 、 黄 色 、 蓝 色 为 曼 哈 顿 距 离 红色、黄色、蓝色为曼哈顿距离

1.定义:

顾名思义,在曼哈顿街区,要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离(一范数)”,也称为“城市街区距离”(City Block distance)。

2.计算公式:

(1) 二维平面两点 a ( x 1 , y 1 ) a(x_1,y_1) a(x1,y1) b ( x 2 , y 2 ) b(x_2,y_2) b(x2,y2)间的曼哈顿距离: d ( a , b ) = ∣ x 1 − y 1 ∣ + ∣ x 2 − y 2 ∣ d_{(a, b)} = |x_1 - y_1| + |x_2 - y_2| d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值