AI面试题①--特征归一化

1. 概述

特征归一化是将所有特征都统一到一个大致相同的数值区间内,通常为[0,1]。主要是用来解决数据的量纲不同的问题。

2. 常用的特征归一化方法

1)Min-Max Scaling(归一化/区间缩放法)
在这里插入图片描述
       对原始数据进行线性变换,使结果映射到[0,1]的范围,实现对数据的等比例缩放。

代码如下:

from sklearn.preprocessing import MinMaxScaler
x1 = MinMaxScaler().fit_transform(x)

2) Z-Score Standardization(标准化)
在这里插入图片描述

       理论上,标准化适用于服从正态分布的数据,标准化后,其转换成标准正态分布(均值为0,标准差为1)。目前很多工程都依赖大数据,所以在样本足够多的情况下,工程师往往直接使用标准化对数据进行无量纲化预处理。在深度学习里,将数据标准化到一个特定的范围能够在反向传播中保证更好的收敛。如果不进行数据标准化,有些特征(值很大)将会对损失函数影响更大,使得其他值比较小的特征重要性降低。因此,数据标准化可以使得每个特征的重要性更加均衡。

代码如下:

from sklearn.preprocessing import StandardScaler
x1 = StandardScaler().fit_transform(x)

3. 哪些机器学习算法需要做特征归一化,为什么?

       在采用梯度更新的学习方法(包括线性回归、逻辑回归、支持向量机、神经网络等)对模型求解过程中,未归一化的数值特征在学习时,梯度下降较为抖动,模型难以收敛(通常需要较长的时间模型才能收敛);而归一化之后的数值特征则可以使梯度下降较为稳定,进而减少梯度计算的次数,也更容易收敛。下图中,左边为特征未归一化时,模型的收敛过程;而右边是经过特征归一化之后模型的收敛过程。

在这里插入图片描述

4. 哪些机器学习算法不需要做特征归一化,为什么?

       以决策的树为基础的模型,比如随机森林、梯度提升决策树等。不需要给特征值做归一化。因为决策树的学习过程本质上是选择合适的特征,分裂并构建树节点的过程,而分裂节点的标准是由树构建前后的目标增益(比如信息增益和信息增益率)决定的。这些指标与特征值之间的数值范围差异并无关系,因此不需要做特征归一化。

猜你喜欢

转载自blog.csdn.net/Roaddd/article/details/113967005