关于normalize中的的norm的取值

范数类型

  • norm参数表示范数的类型,其中可选的值分别有:
    • l1 L1范数(曼哈顿距离)
    • l2 L2范数 (欧几里得距离,默认值)
    • max L∞L\inftyL 最大数范式
    • 以下是从normalize函数源码中截取的有关于norm参数部分
 norm : {'l1', 'l2', 'max'}, default='l2'
        The norm to use to normalize each non zero sample (or each non-zero
        feature if axis is 0).

L1范数

  • 平面上两点a(x1,y1),b(x2,y2),它们之间的曼哈顿距离为 d(a,b)=∣x1−x2∣+∣y1−y2∣d(a,b)=|x_1-x_2|+|y_1-y_2|d(a,b)=x1x2+y1y2
  • L1范数公式
    ∥x∥1=∑i=1n∣xi∣ \parallel x \parallel _1 = {\textstyle \sum_{i=1}^{n}}\mid x_i \mid x1=i=1nxi
  • 将每个样本(行/列)的元素的绝对值之和缩放到1

L2范数

  • 平面上两点a(x1,y1),b(x2,y2),它们之间的欧式距离为 d(a,b)=(x1−x2)2+(y1−y2)2d(a,b)=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}d(a,b)=(x1x2)2+(y1y2)2
  • 当数据点在同一行或者同一列,那么它们任意两点之间只有一个相同维度的数据会影响到欧式距离
  • 公式
    ∥x∥2=∑i=1nxi2 \parallel x \parallel _2 = \sqrt{{\textstyle \sum_{i=1}^{n}}x_i^2 } x2=i=1nxi2
  • 保持向量方向的同时消除幅度差异

max范数

  • 公式
    ∥x∥∞=max(∣x1∣,∣x2∣,⋅⋅⋅,∣xn∣) \parallel x \parallel _{\infty} =max(|x_1| ,|x_2|,···,|x_n|) x=max(x1,x2,⋅⋅⋅,xn)
  • 将每个样本的最大绝对值元素缩放到1

简单使用

import numpy as np
import sklearn.preprocessing as sp

raw_sample = np.array([
    [30.0, -13.0, 22.0],
    [0.0, 42.0, 43.0],
    [10.0, -243.0, 322.0]
])

print(sp.normalize(raw_sample, norm="l1"))
print(sp.normalize(raw_sample, norm="l2"))
print(sp.normalize(raw_sample, norm="max"))

如有错误请联系作者改正,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二月w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值