一、为什么要进行特征缩放
以房价模型为例,假设影响房价的因素是面积和房间数
,模型为:
训练集中,两个特征的范围分别是:
这个模型中,训练集数据分布大概是:
其代价函数等值线是一个椭圆形:
由于的取值范围很大,所以
改变一点点,代价函数的值就改变很大,这就导致梯度下降时容易超过最小值对应的
(如上图的红色箭头),因此找到最小值的速度变慢。
如果把和
进行缩放,使其的取值范围接近呢?
和
缩放后,训练集分布大概是这样的:
其代价函数等值线,接近圆形,如下所示:
在这种场景下,梯度下降可以更快地找到最小值。因此进行特征缩放,可以更快找到代价函数最小值。
PS:并不是所有的特征都必须缩放,假设特征的原本范围和其他特征
、
缩放后相近,那可以不缩放特征
。
二、特征缩放方法
2.1 最大值缩放
公式:
举例:
2.2 均值归一化 Mean normalization
公式:
其中,是第j个特征的训练集数据平均值
举例:
的训练集平均值是
,
的训练集平均值是
2.3 Z-score归一化 Z-score normalization
公式:
其中,是第j个特征的训练集数据平均值,
是第j个特征的训练集数据的标准差
举例:
的训练集平均值是
,标准差是
,
的训练集平均值是
,标准差
学习来源:B站吴恩达:6.1-6.2节