问题1:
- 为什么要进行数据标准化?
在现实生活中,一个目标变量(y)可以认为是由多个特征变量(x)影响和控制的,那么这些特征变量的量纲和数值的量级就会不一样,比如x1 = 10000,x2 = 1,x3 = 0.5 可以很明显的看出特征x1和x2、x3存在量纲的差距;x1对目标变量的影响程度将会比x2、x3对目标变量的影响程度要大(可以这样认为目标变量由x1掌控,x2,x3影响较小,一旦x1的值出现问题,将直接的影响到目标变量的预测,把目标变量的预测值由x1独揽大权,会存在高风险的预测)而通过标准化处理,可以使得不同的特征变量具有相同的尺度(也就是说将特征的值控制在某个范围内),这样目标变量就可以由多个相同尺寸的特征变量进行控制,这样,在使用梯度下降法学习参数的时候,不同特征对参数的影响程度就一样了。比如在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛。
简而言之:对数据标准化的目的是消除特征之间的差异性,便于特征一心一意学习权重。
问题2:
- 什么时候需要进行数据标准化,什么时候不需要进行数据标准化?
由(1)我们可以知道当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理,反之则不需要进行数据标准化。
例如下面这几类问题一般都需要进行数据标准化:
a | 回归问题 |
---|---|
b | 机器学习算法 |
c | 训练神经网络 |
d | 聚类问题 |
e | 分类问题 |
f | 主成分分析(PCA)问题 |
关于数据标准化的方法以及知识点可以查看本博主的另外一篇博文(***python(经典)数据标准化方法、聚类方法、分类方法总结:***/data_bug/article/details/81586412)