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

目录

前言

一、多维特征

二、多变量梯度下降

1.代价函数

2.批量梯度下降算法

3.代码演示(未验证)

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

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

2.特征缩放的几种方法

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

总结


前言

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


一、多维特征

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

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

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

ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥1 + 𝜃2𝑥2+. . . +𝜃𝑛𝑥𝑛

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

ℎ𝜃(𝑥) = 𝜃0𝑥0 + 𝜃1𝑥1 + 𝜃2𝑥2+. . . +𝜃𝑛𝑥𝑛

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

因此公式可以简化为:

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

二、多变量梯度下降

1.代价函数

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

ℎ𝜃(𝑥) 为:

2.批量梯度下降算法

求导后得:

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

3.代码演示(未验证)

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值