距离度量——使用 np.linalg.norm 计算两点之间的 Lp 距离

特征空间中两个实例点的距离是两个实例点相似程度的反映。可以用 L p L_p Lp distance来度量两个实例点的距离:
L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) ) 1 p L_p(x_i, x_j) = \left( \sum_{l=1}^{n} \left| x_i^{(l)} - x_j^{(l)} \right|^{p} ) \right )^{\frac{1}{p}} Lp(xi,xj)=(l=1nxi(l)xj(l)p))p1
这里 p ≥ 1 p≥1 p1

  • p = 1 p=1 p=1 时,称为曼哈顿距离;
  • p = 2 p=2 p=2 时,称为欧式距离;
  • p = ∞ p=\infty p= 时,称为切比雪夫距离。它是各个坐标距离的最大值。

Python 中的 numpy 库可以很方便地计算两点(x1, x2)的距离,使用 numpy 中求范数的方法 np.linalg.norm() 实现:

np.linalg.norm(x1-x2, ord=None, axis=None, keepdims=False)

注:
度量(metric)是对一个集合里面的两个元素而言的,是两点间距离的抽象。
范数(norm)是对一个元素而言的,是实数的绝对值或复数的模这样的长度的抽象。

其中各参数分别为(需要更改的是前两个):

  • x1-x2:两个点(向量)各个维度上的差
  • ord:求哪一种距离,对应 p p p,默认为 2
  • axis:取值 0 或 1,0 表示按列向量处理,求多个列向量的范数。默认为 0
  • keepding:是否保持矩阵的二维特性,默认为 False
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值