什么时候需要做特征归一化
我们在做机器学习时,通常需要将一个事物抽象成一个多维数组来进行描述。但是这些特征由于各自的单位不同,会导致有的数值很大,有的数值又很小。就像我们体检单上的那些数字一样(我的尿酸就快到 600 多了,但是身高却还是 172)。我们知道尿酸的的单位和身高的单位是不一样的,如果不做归一化,那么这两个数值是没有办法进行比较的。也就不方便我们用模型来进行分析了。
如何才能做到归一化
对于数值类型的特征可以通过如下两种方式,将所有的特征都统一到一个大致相同的数值区间内。
- 线性函数归一化(Min-Max Scaling)。
将原始数据进行线性变换,使结果映射到[0 ,1]的范围:
Xnorm=(X−Xmin)/(Xmax−Xmin)
X 为原始值,Xmax, Xmin 分别为最大值和最小值。
- 零均值归一化(Z-Score Normalization)。
它会将原始值映射到均值为 0, 标准差为 1 的分布上 。
注意点
在实际应用中,通过梯度下降法求解的模型通常是需要归一化的,因为可以缩短找到最优解的时间。比如,线性回归,逻辑回归,支持向量机,神经网络等模型。但是对与决策树模型并不使用。决策树在进行节点分裂时主要依据数据集关于某个特征的信息增益比,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在某个特征上的信息增益。
我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!