特征缩放
参考资料
维基百科
知乎
数据标准化/归一化normalization
sklearn
pandas & numpy
numpy中标准差std的神坑
目的
1.提高梯度下降的收敛速度。
- 原始数据的代价函数收敛:
- 特征缩放后:
2. 如果原始数据的特征之间差别很大,不进行特征缩放的话,会导致某些机器学习算法无法正常完成工作。比如很多分类器是通过计算欧氏距离来计算数据与数据之间的距离,如果某个特征的范围比其他特征大的多,可能距离就受到了该特征的支配。
3. batch normalization,批规范化,BN,可以防止梯度爆炸\梯度消失\振荡。
方法
1. rescaling
将数据的特征按比例缩放到[0,1]的区间,公式如下:
x̂ (j)i=x(j)i−min(xi)max(xi)−min(xi) x ^ i ( j ) = x i ( j ) − m i n ( x i ) m a x ( x i ) − m i n ( x i )
2. mean normalization
缩放到[-1, 1]的区间,公式如下:
x̂ (j)i=x(j)i