目录
前言
一、多维特征
二、多变量梯度下降
1.代价函数
2.批量梯度下降算法
3.代码演示(未验证)
三、特征缩放(帮助梯度下降算法更快收敛)
1.为什么要进行特征缩放
2.特征缩放的几种方法
3.进行特征缩放的注意事项
总结
目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,引出多变量线性回归问题。
增添更多特征后,我们引入一系列新的注释:
支持多变量的假设 ℎ 表示为:
ℎ() = 0 + 11 + 22+. . . +
这个公式中有 + 1个参数和个变量,为了使得公式能够简化一些,引入0 = 1,则公式转化为:
ℎ() = 00 + 11 + 22+. . . +
此时模型中的参数是一个 + 1维的向量,任何一个训练实例也都是 + 1维的向量,特征矩阵的维度是 (样本数) ∗ ( + 1)。
因此公式可以简化为:
ℎ() = (T代表转置矩阵)
在多变量线性回归中,我们也构建一个代价函数,则这个代价函数是所有建模误差的平方和。函数如下:
ℎ() 为:
求导后得:
经过各种简化后,可以得出一个通用公式(右下角那个):
如果某个特征的取值范围比其他特征大很多,那么数值计算(比如说计算欧式距离)就受该特征的主要支配。但实际上并不 一定是这个特征最重要,通常需要把每个特征看成同等重要。归一化/标准化数据可以使不同维度的特征放在一起进行比较, 可以大大提高模型的准确性。
在我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛。
首先了解一下归一化和标准化的区别:
1.最大最小值归一化(min-max normalization):将数值范围缩放到 [0, 1] 区间里
2.均值归一化(mean normalization):将数值范围缩放到 [-1, 1] 区间里,且数据的均值变为0
3.标准化 / z值归一化(standardization / z-score normalization):将数值缩放到0附近,且数据的分布变为均值为0,标准差为1的标准正态分布(先减去均值来对特征进行 中心化 mean centering 处理,再除以标准差进行缩放)
4.最大绝对值归一化(max abs normalization ):也就是将数值变为单位长度(scaling to unit length),将数值范围缩放到 [-1, 1] 区间里
5.稳键标准化(robust standardization):先减去中位数,再除以四分位间距(interquartile range),因为不涉及极值,因此在数据里有异常值的情况下表现比较稳健
PS:有一些时候,只对数据进行中心化和缩放是不够的,还需对数据进行白化(whitening)处理来消除特征间的线性相关性。
需要先把数据拆分成训练集与验证集,在训练集上计算出需要的数值(如均值和标准值),对训练集数据做标准化/归一化处理(不要在整个数据集上做标准化/归一化处理,因为这样会将验证集的信息带入到训练集中,这是一个非常容易犯的错误),然后再用之前计算出的数据(如均值和标准值)对验证集数据做相同的标准化/归一化处理。
参考:https://www.cnblogs.com/HuZihu/p/9761161.html