均值归一化_归一化与标准化的Python实现

d7025e7e-7c11-eb11-8da9-e4434bdf6706.png

概念

归一化:缩放仅仅跟最大、最小值的差别有关;输出范围在a-b之间

标准化:缩放和每个点都有关系,通过均值μ和标准差σ体现出来;输出范围是负无穷到正无穷

相同点:归一化和标准化的本质都是一种线性变换,线性变换不改变原始数据的数值排序

优点

  1. 提升模型的收敛速度
  2. 提升模型的精度
  3. 深度学习中数据归一化可以防止模型梯度爆炸

使用场景

  1. 如果对输出结果范围有要求,用归一化
  2. 如果数据较为稳定,不存在极端的最大最小值,用归一化
  3. 如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响

python实现

d8025e7e-7c11-eb11-8da9-e4434bdf6706.png

da025e7e-7c11-eb11-8da9-e4434bdf6706.png

sklearn轮子:

归一化:import sklearn.preprocessing.MinMaxScaler

标准化:import sklearn.preprocessing.StandardScaler

拓展

问:如何归一化到任意[a,b]区间内呢?

答:首先我们来看下如何归一化到[0,1]的。

  1. 区间长度为1-0=1,我们把它平分到(max-min)中,那么每一份为1/(max-min)
  2. 很显然,对应的x占(x-min)份,那么归一化后的x_norm = 1/(max-min) * (x-min)

同理,区间[a,b]可以写成a+[0,b-a],那么

  1. 区间长度为b-a-0=(b-a),我们把它平分到(max-min)中,那么每一份为(b-a)/(max-min)
  2. 同理,对应的x占(x-min)分,那么归一化后的x_norm = a + [(b-a)/(max-min) * (x-min)]

注意

用于测试数据标准化的均值和标准差都是在训练数据上计算得到的,在工作流程中,你不能使用在测试数据集上计算得到的任何结果,即使是像数据标准化这么简单的事情。归一化同理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值