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