机器学习入门(三)多元线性回归

本文围绕多元线性回归展开,回顾一元线性回归前提后,介绍了多元线性回归的假设函数、代价函数和梯度下降算法,分析了梯度下降算法存在的特征缩放和学习率问题及改进方法。还阐述了多项式回归,包括问题背景、尺度归一化,对比了正则方程法和梯度下降法,并分析了X矩阵不可逆的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

3.多元线性回归

3.1 前提回顾

3.2 假设函数 

3.3 代价函数 

3.4 梯度下降 

3.4.1 多元线性回归梯度下降算法

3.4.2  多元线性回归梯度下降算法的问题

3.5 多项式回归 

3.5.1 问题背景及尺度归一化

3.5.2 正则方程求参数最优解 

3.5.3 正则方程法 vs 梯度下降法 

3.5.4 为什么X矩阵不可逆 


3.多元线性回归

3.1 前提回顾

        我们在上一章提出了一元线性回归,我们首先提出了一元线性回归的假设方程,随后我们介绍了它的代价方程。计算机系统能绘制不同的参数对应的代价,如下图。

         然后我们想找一个最低点,这时引入了梯度下降法和下降因子。我们最后得到了一个局部最低点。

        但单一的参数不能够描述一个模型,比如房价只和房子面积有关吗?它的房龄、地段也同样重要!如下图所示。 

3.2 假设函数 

        类比于单一变量线性回归的假设函数,多元线性回归的假设函数如下:

h_{\theta}(x) = \theta_{0} + \theta_{1} x_{1} +\theta_{2} x_{2}+\theta_{3} x_{3}+...+\theta_{n} x_{n}

3.3 代价函数 

        类比于单一变量线性回归的假设函数,多元线性回归的代价函数如下:

\jmath (\theta_{0},\theta_{1},\theta_{2}\theta_{3},...\theta_{n}) = \frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2

3.4 梯度下降 

3.4.1 多元线性回归梯度下降算法

        类比于单一变量线性回归的假设函数,多元线性回归的梯度下降算法如下:

\theta_{j} := \theta_{j} -\beta \frac{\partial }{\partial \theta_{j} }\jmath (\theta)

\theta{j} := \theta{j} - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{i}

3.4.2  多元线性回归梯度下降算法的问题

1.特征缩放(Feature Scalng)

        大多数情况下,数据集将包含量级、单位和范围差异很大的要素。

        以买房子为例:可能第一个变量为房子面积(0-2000),第二个变量为卧室的数量(1-5),量级差别比较大,我们画出代价函数和参数的关系。

         我们在进行梯度下降时,量级大的参数和量级小的参数在进行梯度下降时会有振荡现象发生。导致系统鲁棒性差。

        那如何改进呢?

①我们对其进行尺度归一化!如下图所示:

        让每个系数都控制在-1~1期间:

②均值归一化

2. 学习率(Learning rate)

        对于梯度下降算法\theta_{j} =\theta_{j} - \alpha \frac{\partial }{\partial \theta_{j}}\jmath (\theta):

        怎么样去确定梯度下降法正确呢?如何去选择学习率呢?怎么确定什么时候梯度下降结束呢?

        我们做出最终确定的线性回归方程,做出\underset{\theta}{min}\jmath (\theta)与迭代次数的图像

         我们设定一个阈值,比如一次下降不超过10^{-4}就认为是收敛了。

        如果随着迭代次数代价越来越高、摇摆不定的话则需要减少学习率。

        因此,如果学习率较小,最终会收敛不过收敛的很慢影响效率;若学习率过大,则会难以收敛,我们推荐这么选择学习率。

                                        0.001 -- 0.003 -- 0.01 -- 0.03 -- 0.1 -- 0.3

3.5 多项式回归 

3.5.1 问题背景及尺度归一化

        有时候我们用一元函数拟合不好,则我们需要用多项式拟合曲线。

        这时,我们的假设方程为

h_{\theta}(x) = \theta_{0} + \theta_{1}x_{1} + \theta_{2}x_{2} + \theta_{3}x_{3} = \theta_{0} + \theta_{1}\cdot size + \theta_{2}\cdot size^{2} + \theta_{3}\cdot size^{3}

         这里,x_{1} = size ,x_{2} = size^2 ,x_{3} = size^3,并且我们还要考虑它的尺度一致性,比如size的大小范围为(1-100),我们要对其进行尺度归一化。

3.5.2 正则方程求参数最优解 

        对于单参数方法,对于学过微积分的我们来说\jmath (\theta)求其最小值(\jmath (\theta) = a\theta^2 + b\theta + c)其实就是求导让其为零求得的\theta

        对于多参数方法,\theta \in \mathbb{R}^{n+1}\jmath (\theta_{0},\theta_{1},\theta_{2}......\theta_{m}),对于每个参数,我们让其偏导数让其为0\theta_{j}就是最优解的\theta_{j}

        我们也可以用正则方程来求最优的\theta

        如上图,我们有一个四个数据集的数据,我们构造X矩阵,X矩阵的第一列为1,其他列为不同属性值,我们可用\theta = (X^TX)^{-1}X^Ty求的最优\theta_{j}的解。 

3.5.3 正则方程法 vs 梯度下降法 

正则方程化的特点:

①不用去考虑学习率\alpha

②不需要迭代

③需要去计算X^TX,这在特征很大(>10000)是个规模庞大的计算,同时X也需要一个可逆矩阵(不可逆也可以,虽然这在线性代数里的理解是不行的,但机器会把他优化)

梯度下降法的特点:

①需要去考虑学习率\alpha

②需要迭代

③能在特征数很大的时候也能算

3.5.4 为什么X矩阵不可逆 

①有线性关系

②特征太多了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

APS2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值