【吴恩达机器学习笔记】多变量线性回归

目录

前言

一、多维特征

二、多变量梯度下降

1.代价函数

2.批量梯度下降算法

3.代码演示(未验证)

三、特征缩放(帮助梯度下降算法更快收敛)

1.为什么要进行特征缩放

2.特征缩放的几种方法

3.进行特征缩放的注意事项

总结


前言

目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,引出多变量线性回归问题。
 


一、多维特征

增添更多特征后,我们引入一系列新的注释:

  • 代表特征的数量
  • x^{(i)}代表第 个训练实例,是特征矩阵中的第行,是一个列向量( vector)。
  • x_{j}^{(i)}代表特征矩阵中第 行的第 个特征,也就是第 个训练实例的第 个特征。

支持多变量的假设 ℎ 表示为:

ℎ() = 0 + 11 + 22+. . . +

这个公式中有 + 1个参数和个变量,为了使得公式能够简化一些,引入0 = 1,则公式转化为:

ℎ() = 00 + 11 + 22+. . . +

此时模型中的参数是一个 + 1维的向量,任何一个训练实例也都是 + 1维的向量,特征矩阵的维度是 (样本数) ∗ ( + 1)。

因此公式可以简化为:

ℎ() = \theta ^{T}(T代表转置矩阵)

二、多变量梯度下降

1.代价函数

在多变量线性回归中,我们也构建一个代价函数,则这个代价函数是所有建模误差的平方和。函数如下:

ℎ() 为:

2.批量梯度下降算法

【吴恩达机器学习笔记】多变量线性回归_第1张图片

求导后得:

【吴恩达机器学习笔记】多变量线性回归_第2张图片

经过各种简化后,可以得出一个通用公式(右下角那个):

【吴恩达机器学习笔记】多变量线性回归_第3张图片

3.代码演示(未验证)

【吴恩达机器学习笔记】多变量线性回归_第4张图片

三、特征缩放(帮助梯度下降算法更快收敛)

1.为什么要进行特征缩放

  • 统一特征的权重&提升模型准确性

       如果某个特征的取值范围比其他特征大很多,那么数值计算(比如说计算欧式距离)就受该特征的主要支配。但实际上并不         一定是这个特征最重要,通常需要把每个特征看成同等重要。归一化/标准化数据可以使不同维度的特征放在一起进行比较,         可以大大提高模型的准确性。

  • 提升梯度下降法的收敛速度

       在我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛。

2.特征缩放的几种方法

首先了解一下归一化和标准化的区别:

  • 归一化(normalization):归一化是将样本的特征值转换到同一量纲下,把数据映射到[0,1]或者[-1, 1]区间内。
  • 标准化(standardization):标准化是将样本的特征值转换为标准值(z值),每个样本点都对标准化产生影响。

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)处理来消除特征间的线性相关性。

3.进行特征缩放的注意事项

需要先把数据拆分成训练集与验证集,在训练集上计算出需要的数值(如均值和标准值),对训练集数据做标准化/归一化处理(不要在整个数据集上做标准化/归一化处理,因为这样会将验证集的信息带入到训练集中,这是一个非常容易犯的错误),然后再用之前计算出的数据(如均值和标准值)对验证集数据做相同的标准化/归一化处理。


总结

参考:https://www.cnblogs.com/HuZihu/p/9761161.html

你可能感兴趣的:(吴恩达《机器学习》笔记)