【机器学习】为什么需要对数值型的特征做归一化(Normalization)?

一、概念定义

在数据处理场景中特征缩放 = 数据规范化,这个两个名词是相同的。

Feature scaling = data normalization

一个数字按照一定规则变小或者变大,这个数字就是特征,变小就是缩,变大就是放。

特征缩放是一种用于规范自变量或数据特征范围的方法。

在数据处理中,这也称为数据规范化,通常在数据预处理步骤中执行。

二、标准化、归一化的原因、用途

2.1 原因

  1. 统计建模中,如回归模型,自变量的量纲不一致导致了回归系数无法直接解读或者错误解读;为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使得不同指标之间具有可比性;
  2. 机器学习任务和统计学任务中有很多地方要用到“距离”的计算,比如PCA,比如KNN,比如K-means等等,假使算欧式距离,不同维度量纲不同可能会导致距离的计算依赖于量纲较大的那些特征而得到不合理的结果;
  3. 参数估计时使用梯度下降,在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。

举例:

分析一个人的身高和体重对健康的影响,如果使用米(m)和千克(kg)作为单位,那么身高特征会在1.6~1.8m的数值范围内,体重特征会在50~100kg的范围内,分析出来的结果显然会倾向于数值差别比较大的体重特征。

想要得到更为准确的结果,就需要进行特征归一化(Normalization)处理,使各指标处于同一数值量级,以便进行分析。

三、数据归一化的影响

归一化之后等高线变得不再崎岖, x 1 x_1 x1 x 2 x_2 x2的更新速度变得更为一致,容易更快地通过梯度下降找到最优解。迭代次数变少,减小梯度下降算法的过程,从而加速模型的生成。

在这里插入图片描述

四、常用的3种归一化方法

线性函数归一化(最大最小值归一化)和零均值归一化。

4.1 归一化公式

4.1.1 线性归一化(Min-Max Scaling,即我们一般指的归一化)

它对原始数据进行线性变换,使结果映射到 [ 0 , 1 ] [0, 1] [0,1]的范围,实现对原始数据的等比缩放,最通用:
X n o r m = X − X m i n X m a x − X m i n X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}} Xnorm=XmaxXminXXmin
其中 X n o r m X_{norm} Xnorm为归一化后的数据, X X X为原始数据, X m a x X_{max} Xmax X m i n X_{min} Xmin分别为原始数据集的最大值和最小值。

注意:对异常值十分灵敏,异常值容易造成偏差!

4.1.2 均值归一化(Mean Normalization)

X = X − − X m a x ( X ) − m i n ( X ) X = \frac{X-\frac{-}{X}}{max(X)-min(X)} X=max(X)min(X)XX

4.1.3 零均值归一化(Z-Score Normalization,通常叫标准化)

给予原始数据的均值 μ μ μ(mean)和标准差 σ σ σ(standard deviation)进行数据的标准化。

它会将原始数据映射到均值为0、标准差为1的分布上。
z = x − μ δ z = \frac{x-\mu}{\delta} z=δxμ

五、标准化 vs 归一化

在这里插入图片描述

六、哪些模型必须归一化

  1. 在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,标准化(Z-score standardization)表现更好

  2. 在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围

实际应用中,通过梯度下降法求解模型的通常需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等。

七、哪些模型不需要归一化?

不是所有的模型都需要做归一的,比如模型算法里面有没关于对距离的衡量,没有关于对变量间标准差的衡量。

  1. 决策树模型不要要归一化,他采用算法里面没有涉及到任何和距离等有关的,看的是信息增益比,所以在做决策树模型时,通常是不需要将变量做标准化的

  2. 概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率

归一化(Batch Normalization)是一种在深度神经网络中常用的技术,它的主要目的是解决梯度消失和梯度爆炸的问题,同时还能加速网络的训练过程。 在深度神经网络中,随着网络层数的增加,输入数据在每一层的变化会逐渐放大或缩小,导致激活函数的输入值分布发生偏移。这种偏移会使得网络的学习变得困难,因为每一层的参数都需要重新适应新的输入分布。此外,由于每一层的参数都是通过反向传播算法进行更新的,梯度消失和梯度爆炸也会影响网络的训练效果。 批归一化通过对每一层的输入进行归一化处理,使得每一层的输入分布保持在一个较稳定的范围内。具体来说,它通过对每个小批量样本的均值和方差进行估计,然后对输入进行线性变换和平移操作,将输入数据重新映射到一个标准正态分布。这样的好处是可以使得网络更容易学习到适应不同输入分布的参数,并且减少了梯度消失和梯度爆炸的问题。 批归一化的优点包括: 1. 提高网络的收敛速度:通过将输入数据归一化到一个标准分布,可以加速网络的训练过程,使得网络更快地收敛到最优解。 2. 减少梯度消失和梯度爆炸:通过控制每一层输入的范围,批归一化可以减少梯度消失和梯度爆炸的问题,使得网络更稳定地进行训练。 3. 提高模的泛化能力:批归一化可以减少模对输入数据分布的依赖,提高了模的泛化能力,使得模在测试集上的表现更好。 总之,批归一化是一种非常有效的技术,可以提高深度神经网络的性能和训练效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旅途中的宽~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值