标准化是对列进行归一化操作,主要包括:
standardScaler: 将特征标准化为单位标准差或是0均值,或是0均值单位标准差。
minmaxScaler:将特征的值缩放到[0,1]范围。x=(x-min)/(max-min)
MaxAbsScaler:将特征的值缩放到[-1,1]范围。x=x / max|x|
为什么要进行标准化操作?
在现实生活中,一个目标变量(y)可以认为是由多个特征变量(x)影响和控制的,那么这些特征变量的量纲和数值的量级就会不一样,比如x1 = 10000,x2 = 1,x3 = 0.5 可以很明显的看出特征x1和x2、x3存在量纲的差距;x1对目标变量的影响程度将会比x2、x3对目标变量的影响程度要大(可以这样认为目标变量由x1掌控,x2,x3影响较小,一旦x1的值出现问题,将直接的影响到目标变量的预测,把目标变量的预测值由x1独揽大权,会存在高风险的预测)而通过标准化处理,可以使得不同的特征变量具有相同的尺度(也就是说将特征的值控制在某个范围内),这样目标变量就可以由多个相同尺寸的特征变量进行控制,这样,在使用梯度下降法学习参数的时候,不同特征对参数的影响程度就一样了。比如在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛。
简而言之:对数据标准化的目的是消除特征之间的差异性,便于特征一心一意学习权重。
什么时候需要进行数据标准化,什么时候不需要进行数据标准化?
当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理,反之