浅谈数据归一化在机器学习中的作用

浅谈数据归一化在机器学习中的作用

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间(或所需区间)上。

一、归一化的类别:

1.线性归一化:
在这里插入图片描述

线性归一化将原始数据线性化的方法转换到[0 1]的范围,该方法实现对原始数据的等比例缩放。
2.极差变换法:

在这里插入图片描述
通过利用变量取值的最大值和最小值(或者最大值)将原始数据转换为界于某一特定范围的数据,从而消除量纲和数量级影响。这种归一化方法比较适用在数值比较集中的情况。这种方法有个缺陷,该方法在改变各变量权重时过分依赖两个极端取值,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用 经验常量值来替代max和min。
3.zero-score法(0均值标准化)
在这里插入图片描述
最常见的标准化方法就是zero-score标准化,也是SPSS中最为常用的标准化方法,spss默认的标准化方法就是z-score标准化。虽然该方法在归一化过程中利用了所有的数据信息,但是该方法在归一化后不仅使得转换后的各变量均值相同,且标准差也相同,即归一化的同时还消除了各变量在变异程度上的差异,从而转换后的各变量在聚类分析中的重要性程度是同等看待的。
4.非线性归一化:
通过一些数学函数,将原始值进行映射(log、atan、指数等函数),从而将数据分布到所期望的范围中。

二、归一化的作用:

1.归一化后加快了梯度下降求最优解的速度;
2.归一化在一定程度上可以提高模型训练精度。

如何加快梯度下降

针对损失函数
在这里插入图片描述
如果各个输入数据样本x之间的差距过大,会使损失函数的三维图像呈现如下样貌:
在这里插入图片描述
延伸到二维空间后:
在这里插入图片描述
此时因为每个样本数据之间差距较大,如果想在梯度下降过程中利用上每一个样本数据,就必须使用较小的学习率进行训练,会大大增加梯度下降的时间成本。
反之,针对归一化后的数据进行梯度下降,损失函数对应的三维和二维图像如下:

在这里插入图片描述在这里插入图片描述
同理,此时即使使用较大学习率(暂不考虑过拟合和梯度消失的情况)来增加梯度下降速度,也能够保证足够多的训练样本数据参与训练过程,从而加快了梯度下降过程。

提高训练精度

在涉及到一些距离计算的算法时效果显著,比如算法要计算欧氏距离,每个数据的取值范围不同,在计算距离时不同数据对结果产生的影响会有较大差距,就会造成精度的损失。所以归一化很有必要,他可以让各个特征对结果做出的贡献相同,从而保证训练结果的可靠性。从经验上说,归一化是让不同维度之间的特征在数值上有一定可比性,可以大大提高分类器的准确性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值