4.多元线性回归

4 多元线性回归

多特征

设有n个特征,x(i)表示第i个样本的特征向量,形状为n×1xj(i)表示第i个样本的第j个特征的值。

特征有多个时,我们可以假设hθ(x)=θ0+θ1x1+θ2x2++θnxn,可以让x0=1,这样hθ(x)=θTx

梯度下降更新参数,左图为只有1个特征,右图为有多个特征时:

如何让梯度下降收敛更快:(1)特征缩放Feature Scaling(2)学习率

特征缩放

当特征值的取值范围差距很大时,会相应的导致梯度差距很大,参数更新可能左右横跳,导致收敛速度变慢,如左图;

我们可以让变量除以极差(max-min)来进行特征缩放,让变量取值范围相近,缓解这一问题

左右横跳是因为θ1的偏导相对θ2太大,相对的θ1下降步数太大,从山谷这头一下子迈到山谷那头,永远没头。

均值归一化(Mean Normalization):将数据的每个特征调整为均值为 0,范围标准化为固定区间(通常是 [-1, 1])

xnorm=xuxmaxxmin,其中u为均值

标准化(Standardization):调整为均值为 0,标准差为 1,适合于分布接近正态分布的数据

xstand=xuσ, 其中σ为标准差

学习率

如何确保梯度下降正常工作?(1)绘制损失函数随迭代次数的曲线图。损失函数逐步下降说明正常工作;当损失函数较为平坦时,说明已经收敛(2)自动收敛测试,当某次迭代后,学习率下降很少<ϵ说明已经收敛, 但ϵ取值较难设定。常用方法一

当损失函数曲线逐步上升或成屁股形时,说明学习率取值过大,应调小学习率

当学习率充分小时,损失函数的值会逐步下降。但梯度下降算法会收敛的很慢。

总结:学习率太小会收敛很慢;学习率太大,损失会增加;可能不收敛;可能收敛很慢。

如何选择学习率:先确定学习率的最小最大值,再在区间内尝试找到可以快速收敛的学习率。可以每3倍3倍的尝试。

特征和多项式回归

设计特征:我们可以不使用hθ(x)=θ0+θ1×x1+θ2×x2,其中x1为房子长度,x2为房子宽度。我们可以设计特征房子面积x=x1×x2,令hθ(x)=θ0+θ1×x

多项式回归:分析数据点的分布情况,我们可以使用某个特征的根号项、二次项、三次项来作为函数的类型来进行拟合。注意:在有多次项的时候,特征缩放显得更加重要。

正规方程

求解参数θ的方法:(1)梯度下降、正规方程

思想:令损失函数的偏导为0,解出θ.

方法:在数据中加入x0特征这一列并初始化为1,将数据的每一项特征作为矩阵X的一列,所有数据的标签作为向量y。则θ=(XTX)1XTy.

梯度下降vs正规方程:(1)梯度下降需要选择学习率,并且需要迭代多次;而正规方程不需学习率,不需迭代。(2)梯度下降当n很大时仍有效,而正规方程时间复杂度较高。

计算逆矩阵的复杂度为O(n3),当n1e4时使用正规方程,反之使用梯度下降。而且梯度下降在以后复杂方法中也可以求解,正规方程可能不可。

当(1)含有多余特征时,其中某些特征存在线性相关关系(2)特征太多时,样本数<=特征数。会出现矩阵XTX不可逆的情况。尝试(1)删除多余的特征(2)删除某些特征或正则化

矢量化

hθ(x)=j=0nθjxj对应未矢量化的代码(for),左半部分。

hθ(x)=θTx对应矢量化的代码,右半部分。运行效率更快。

在梯度下降更新参数θ时,我们可以使用矢量化完成参数同步更新缩短代码更高效

我们可以将参数更新的公式记为θ:=θαδ.这里θRn+1,αR,δRn+1. where $\delta=\frac{1}{m}\sum^{m}{i=1}{(h{\theta}(x^{(i)})-y^{(i)})(x^{i})}$.

下面说明为什么δ是n+1维的向量。

求和号中的(hθ(x(i))y(i))R表示用第i个样本的预测值-实际值,是一个数。(xi)Rn+1表示第i个样本的特征向量,是一个向量。得证。

将求和号展开,即$\sum^{m}{i=1}{(h{\theta}(x^{(i)})-y^{(i)})(x^{i})}=(h_{\theta}(x^{(1)})-y^{(1)})x^{(1)}+(h_{\theta}(x^{(2)})-y^{(2)})x^{(2)}+…(h_{\theta}(x^{(1)})-y^{(1)}),(h_{\theta}(x^{(2)})-y^{(2)})x^{(1)},x^{(2)}$是向量。

其中将x(i)展开为向量,只关注x0(i)的项,相乘相加即为δ0


4.多元线性回归
http://example.com/2025/02/16/4 多元线性回归/
作者
Dongxuan Liu
发布于
2025年2月16日
许可协议