课时4 多元线性回归及正规方程.docx
4.1 多功能
当我们在预测某一个数值比如房价时,影响房价预测结果的往往不止房屋面积一项,而我们之前做的工作都是只有一个变量影响结果,现在扩展至多个变量
当变量扩展至n个时,假设函数中也多了与之对应的参数θ。此时我们再构造向量乘法时,发现有n个变量x,而却有n+1个参数θ。所以我们在构造X向量时,在第一行加一个x0项,令其永远=1。这样在做向量乘法时,即可保证第一个θ0的一个常数位置,也使后面的x与自己的θ一一对应。
4.2 多元梯度下降法
4.3 梯度下降运算中的实用技巧
4.3.1特征缩放
如果你有一个机器学习问题,包含多个特征。如果你能确保不同的特征的取值在相同的范围内,这样梯度下降算法可以更快的收敛。
比如两个特征,一个是房屋面积,一个是卧室数量。显然房屋面积要比卧室数量在数值上大的多,这就使得你的代价函数的图像变的细长,这会造成梯度下降算法执行过程非常缓慢,甚至其路径有可能来回震荡。此时如果我们将两个特征向量各除以一个值,使其都在0-1范围内,那么代价函数图像就会变的更圆,以便梯度下降算法最快的找到路径达到最小值。
当你尽量将特征的值放进-1到1时,其实也不用非常的接近,吴恩达认为右边的这个范围是可以接受的
均值归一化:
某一个特征,比如x1,它在训练集中有很多值,先算一个平均值μ1,再用每一个x1-μ1,再除以x1的范围,比如房屋价格的范围就是2000。用这个公式去处理每一个特征,这就使得每一个特征都能落在差不多的一个范围里,这个过程叫均值归一化。
4.3.2(4.4)学习率α
通常,我们可以通过这样的代价函数J的图像来判断其是否已经收敛,很明显图中的J已经收敛至最小值(注意是最小值不一定是0)。同时,我们也可以让程序自动判断是否已经收敛,但这样的判断往往很难选择一个合适的参数,所以吴恩达更喜欢用观察图像的方法。
上图中,代价函数J的图像反而越来越大和振荡两种情况说明学习率α选的有点大(首先保证算法没有出错),需要减小α的值。同时,你也不愿意把α选的过小,因为那会让算法收敛的非常非常慢。
通常可以从一个较小值开始,不断的扩大三倍来尝试取α,以找到一个合适的学习率
4.5 特征和多项式回归
当我们预测房价时,假设拥有两个特征变量,一个是房子临街一侧的宽度,一个纵深方向的宽度。我们发现这两个特征不一定要作为两个独立的变量出现,此时我们可以定义一个新的特征变量——面积,以此来简化模型。
与选择特征的想法密切相关的一个概念被称为多项式回归。
如图有一个房价的数据集,可能会有多个不同的模型用于拟合。很明显直线不能很好的拟合这组数据,可能会想到用二次模型,但二次模型在到达峰值后会减小,我们不认为随着面积增大房价也会减小,所以可能会用三次模型。那么我们如何将数据和模型进行拟合?
多项式回归即包含两个以上变量的非线性回归模型,通常转化为线性回归。即将上图中的面积的平方和面积的立方设为不同的变量x2,x3,此时非线性的问题就转化为线性问题。这种情况下的特征值缩放就显得更加重要,因为三个变量的取值范围差异非常大。
上述数据还可以选择平方根模型,似乎能够更好的拟合,在选择模型时其实是非常灵活的。
4.6 正规方程
之前我们使用梯度下降算法,通过一步步迭代求出最佳的θ。正规方程是使用解析的方法,一步求出最佳θ。
求最佳θ的过程详细来讲,其实是求θ的函数J,即代价函数取得最小值时的θ值。那么根据微积分的知识,当θ为一个实数时,我们可以通过求导,并使J的导数为0来得到θ。但通常情况下,我们的θ不是一个实数,而是一组数,或者说是一个n+1(前面有介绍过为什么参数比变量x多一个)维的参数向量,而代价函数J则是这个向量的函数。根据微积分,我们应当对每个θ求偏导,并全部将其偏导数置零求得最佳值,但这样做非常麻烦,以下提供一个等价公式。
首先需要构造一个设计矩阵X,它包含了数据集中的所有特征变量,并将预测值y构建一个向量y。然后根据红框内的公式,即可直接求得参数向量θ。
另外,使用这个公式求θ时,不需要特征缩放。
优劣对比:梯度下降算法需要尝试几次选择一个合适的学习率α,并且需要迭代然后确保其收敛,步骤较为复杂,而正规方程可通过计算一步得到结果,在特征变量较少时可以选择使用正规方程。但当特征变量非常多,通常大于甚至远大于万级别时,这个公式通常需要非常大的时间复杂度,因为不仅要计算X与X的转置,尤其是矩阵求逆时,算法的时间复杂度要达到O(n3)。另外,正规方程算法较适用于线性回归模型,在以后学习的更复杂的模型中,我不得不继续使用梯度下降算法。
4.7正规方程在矩阵不可逆情况下的解决方法(选修)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!