【吴恩达机器学习笔记详解】第四章 多变量的线性回归(多元线性回归)

4.1 多变量的假设函数

我们之前介绍的线性回归是一个变量(特征)对预测价格的影响,像这个例子中是房子的大小对价格的影响
在这里插入图片描述
下面会介绍更为复杂的情况就是多个变量(特征)对于房子价格的影响
在这里插入图片描述
在这个多变量的图中,下面解释了每个符号代表的含义,第二行这个符号代表着第二个的数据的所有特征,也就是粉红色这个框起来的部分,第三行代表的是第i个样本的第j个特征。

对于多个特征我们的假设函数也要相对的做出改变,下面是对于多变量或者说多特征的假设函数。
在这里插入图片描述

对于多变量或者说多特征的假设函数,为了方便我们把x0定义为1,这样我们把假设函数用矩阵向量的形式来表示,对于特征x来说,我们用x0到xn的n+1维向量表示,他们参数θ也是一样,我们用向量表示,也是n+1维的,这样我们的假设函数可以用两个向量联系起来,就是θ的转置乘x,如右边所示,变成行向量乘列向量,正好等于我们的假设函数。
在这里插入图片描述
多变量的线性回归又称多元线性回归

4.2 多元梯度下降法

下面介绍对于多变量的假设函数,我们如何进行多变量的梯度下降。
在这里插入图片描述
这是对两个变量线性回归的梯度下降的升级版本的梯度下降,左边这个梯度下降中,对于θ1来说我们进行求导的时候要用到链式求导,所有要在后面出来个xi,它的上标i代表第i个训练样本,实际上也就是第i个训练样本中第1个特征,因为只有一个特征这里。

而升级版本中,对于不同的参数θ求导,我们每次都要在后面链式求导的时候,后面都会跟上一个单独的项,对于θ几后面都会加一个第几个特征的训练样本。
在这里插入图片描述

4.3 多元梯度下降法演练 1. 特征缩放

对于特征不在一个相似的范围内的时候,我们根据这两个参数画出来的图像是一个非常歪斜并且椭圆的形状,,因为这两个特征差的特别多,比例特别大,如果在着这种代价函数上进行进行梯度下降的时候,你的梯度可能会需要很长的时间,并且可能会来回的波动,如图所示,经过很长时间才能收敛到全局最小值。(因为等高线的法向量也就是梯度的方向,而椭圆的法向量不是指向圆心,所以下降比较缓慢)

那么我们可以把特征进行缩放,放在一个相同的水平中,这样画出来的代价函数图像是比较正的,容易找一条简单直接的梯度下降路线来寻找最低点。
在这里插入图片描述
对于特征缩放的方法,我们前面说让他们在一个范围内,其实使范围差不多就可以。

在这里插入图片描述

均值归一化
用Xi-Ui来代替Xi来使特征值具有为0的平均值,但是因为X0总是等于1,所以不可能有为0的平均值。

这里对于如何归一化举例说明了,对于处理Xi 我们用Xi-Ui(是特征Xi的平均值),下面的Si是Xi的范围,可以用最大值减去最小值,或者说用标准差也可以。

这里举的例子可能不能很好的满足上面的式子,其实范围差不多就行,没有特别的严格,目标就是使梯度下降进行的更快一些,收敛所需要的迭代次数更少一些就可以。
在这里插入图片描述

4.4 多元梯度下降法演练 2. 学习率

这一节我们将会讲一下如何选择学习率来帮助我们更好的进行梯度下降
在这里插入图片描述
左边这个图是用来表示迭代次数和代价函数J的关系,我们可以画出这样一个图,就是迭代次数和代价函数之间的关系,随着迭代次数的增加,代价函数会减少,直到代价函数的减少的很少,我们说它是收敛了。

右边有个对于收敛的测试,就是但J减少小于一个值的时候我们称它是收敛了的。
在这里插入图片描述

下面是一个例子,左边这两个图都是代表着学习率太大导致的后果,右边这个图有点小错误就是横坐标应该是θ,如果学习率过大会导致如右图一样来回的跑,导致我们的代价函数越来越大。

对于一个足够小的学习率,我们的代价函数每次迭代都应该减少,但是如果学习率太小,梯度下降就收敛的速度很慢。

在这里插入图片描述
总结一下就是,如果学习率太小,那么收敛的速度就会很慢,如果学习率过大,代价函数可能不会在每次迭代都下降,甚至不收敛,在一些情况下,如果学习率太大,也会出现收敛速度慢的情况,但是更常见的问题是代价函数并不会在每一次迭代之后都会下降。通过绘制迭代次数和代价函数图像可以看出学习率是过大还是过小。
在这里插入图片描述

4.5 特征和多项式回归

多项式回归可以使用线性回归的方法来拟合非常复杂的函数,甚至是非线性函数。

假设有两个特征,对于原来两个特征分别是房子的临街宽度和房子的垂直宽度,这样我们对于我们来说是两个特征,当用线性回归的时候,我们可以不用这两个特征来表示,我们可以把两个特征结合成一个,创建一个新的特征,比如房价问题,主要和面积有关,因为宽度乘深度等于房子的面积,这样我们从两个特征变成了一个特征,定义了一个新的特征我们会得到一个更好的模型。

所以这取决于你从什么角度去审视一个特定的问题,有的时候定义一个新的特征可能会得到一个更好的模型。
在这里插入图片描述
与选择特征的想法密切相关的一个概念是多项式回归。

下面对于一个房子价格与大小之间的关系的数据集,可能会有多个不同的模型来进行拟合,选择之一是这样的二次模型,但是直线并不能很好的去拟合这些数据,用二次函数去拟合,甚至选择三次函数去拟合,只要可以尽可能好的去拟合数据即可。

那么怎么将模型和数据进行拟合呢?我们使用多元线性回归的方法,可以对算法做一个简单的修改,将三个参数分别改成1次方,2次方,3次方的形式。注意这改变之后的特征缩放一定要注意一下。在这里插入图片描述
最后一个例子告诉你有很大的余地去选择要使用哪些特征
我们说用一个二次函数来拟合数据的时候,后面要拟合的可能会出现随着面积的增大价格反而会减小的情况,这是不符合常规的,所以我们尝试用平方根函数来进行拟合,这样在后面的数据它不会出现下降的情况,其实这是根据我们经验来进行选择的。
在这里插入图片描述

4.6 正规方程(区别于迭代方法的直接解法)

对于某些线性回归问题,正规方程会给我们更好的方法去求解这个参数θ最优解
在这里插入图片描述

正规方程不像梯度下降一样一直迭代,而是有一种解法可以一步到位,直接解出最优解。但是它也是既有缺点也有优点的。

在讲优缺点之前我们先了解一下正规方程,假设J是θ的代价函数,θ是属于实数的,θ是个标量就是数字而不是向量
在这里插入图片描述
对于这个二次函数,我们知道求导,然后另导数等于0这样求得的值就是θ的最优解。

但是我们问题也有好多不是实数的,而是一个n+1维的参数向量,代价函数也是J关于θ从1到m的代价函数,微积分的方法是分别对θ0到n求导并且令其为0,分别解出来

J里面的theta应该是写错了,应该到为θn,我是这样认为i的
在这里插入图片描述
下面以一个例子来进一步了解一下正规方程

其中下面这个例子中一共四个数据,我们在下面数据集中加上一列,对应额外特征变量的X0,他的取值永远是1,我们构建一个矩阵,这个矩阵可以包含训练样本的所有特征,我们将Y构建一个向量。X是一个m×n+1的矩阵,Y是一个m维的向量。其中m是训练样本的数量,n是特征变量数,其实是n+1,因为我们加了额外的特征变量X0
在这里插入图片描述
这个公式其实是矩阵论里面的最小二乘解

通过上面这个公式就可以使得代价函数最小化θ

对于每一个训练样本X(i)来说,可能都是这样的一个向量,像这种n+1维特征向量,构建矩阵X的方法,也被称为设计矩阵,每个训练样本给出一个这样的特征向量,例如这种n+1维的向量,构建矩阵的方法我们要做的就是取第一个,也就是第一个向量,取他的转置,以此去m的样本的转置,这就是矩阵X,一个m×(n+1)维的矩阵。
在这里插入图片描述
在这里插入图片描述

举个具体的例子,假如我只有一个特征变量,除了X0以外只有一个特征变量,而X0始终为1,如果我的特征向量X(i)等于1,也就是X(0),和某个实际的特征变量,比如房子的大小,如例子所示,那么我们设计矩阵X 会是这样,第一行取第一个x的转置,依次这样操作,最后得到m×2的矩阵。

注意(图上的矩阵X的第二列写错了,其中上标表示第几个样本,下标表示第几个特征,这里特征只有一个)

这样就能求出θ来。

在这里插入图片描述

其中X的转置×X是为了获得方阵,只有方阵才有逆矩阵
矩阵A和他的逆矩阵相乘得到单位矩阵E,AE=EA=A
还有一个就是特征方程法不需要特征缩放

什么情况下使用梯度下降?什么时候使用特征方程法呢?
下面有个对比,假设你有m个数据,n个特征变量
在这里插入图片描述
如果n大于1W的话,就不要用正规方程了,因为矩阵计算速度就很慢了,并且复杂度是O(n的三次方)

4.7 正规方程在矩阵不可逆的情况下的解决方案

X的转置×X出现不可逆的情况主要是:
1.方阵中的两个维度之间存在线性交换关系,导致方阵不满秩
2.n特征数量相对于m样本数量过大,导致其产生的齐次方程组Ax=0不只有0解
在这里插入图片描述
在这里老师没有从数学的角度来解释,其实我觉得背后原理还是数学的角度

1.由于某些原因,你的学习问题包含了多余的特征
2.你在运行算法的时候,有很多特征,也就是不满秩。
我们可以采取删除某些特征,或者正则化的方式来解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值