机器学习02:多变量线性回归

本文深入探讨了多变量回归模型的概念及应用,包括普通表示和向量表示,并详细讲解了多元梯度下降法及其收敛问题。此外,还介绍了如何通过特征缩放来提高梯度下降法的效率,并对比了梯度下降法与正规方程法的不同之处。

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

机器学习——多变量回归

模型

普通表示

nnn为特征个数。
y=θ0+θ1x1+θ2x2+θ3x3+ ⋅⋅⋅+θnxn y=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+\,···+\theta_nx_n y=θ0+θ1x1+θ2x2+θ3x3++θnxn
x0=1x_0=1x0=1:
y=θ0x0+θ1x1+θ2x2+θ3x3+ ⋅⋅⋅+θnxn y=\theta_0x_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+\,···+\theta_nx_n y=θ0x0+θ1x1+θ2x2+θ3x3++θnxn

向量表示

x=[x0x1x2⋅⋅⋅xn]ϵRn+1      \pmb{x}=\left[ \begin{matrix} x_0\\ x_1 \\ x_2 \\ ···\\x_n \end{matrix} \right]\epsilon R^{n+1}\,\,\,\,\,\,xxx=x0x1x2xnϵRn+1θ=[θ0θ1θ2⋅⋅⋅θn]ϵRn+1\pmb{\theta}=\left[ \begin{matrix} \theta_0\\ \theta_1 \\ \theta_2 \\ ···\\\theta_n \end{matrix} \right]\epsilon R^{n+1}θθθ=θ0θ1θ2θnϵRn+1y=θTx\pmb{y} =\pmb{\theta^T}\pmb{x}yyy=θTθTθTxxx

多元梯度下降法

repeat{θj:=θj−αJ(θ)}for  every  j=0,1,2...n repeat \left\{ \theta_j:=\theta_j-\alpha J(\pmb{\theta}) \right\} for\,\, every\,\,j=0,1,2...n repeat{θj:=θjαJ(θθθ)}foreveryj=0,1,2...n
n=1n=1n=1时(实际上也是单变量线性回归):

repeat:repeat:repeat:
θ0:=θ0−α1m∑i=1m(yi^−yi)θ1:=θ1−α1m∑i=1m(yi^−yi) \theta_0:=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^m(\hat{y_i}-y_i) \\ \theta_1:=\theta_1-\alpha\frac{1}{m}\sum_{i=1}^m(\hat{y_i}-y_i) θ0:=θ0αm1i=1m(yi^yi)θ1:=θ1αm1i=1m(yi^yi)

n≥1n\geq1n1时:
repeat:repeat:repeat:
θ0:=θ0−α1m∑i=1m(yi^−yi)xi0θ1:=θ1−α1m∑i=1m(yi^−yi)xi1⋅⋅⋅θn:=θn−α1m∑i=1m(yi^−yi)xin \theta_0:=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^m(\hat{y_i}-y_i)x_{i0} \\ \theta_1:=\theta_1-\alpha\frac{1}{m}\sum_{i=1}^m(\hat{y_i}-y_i)x_{i1}\\···\\ \theta_n:=\theta_n-\alpha\frac{1}{m}\sum_{i=1}^m(\hat{y_i}-y_i)x_{in} θ0:=θ0αm1i=1m(yi^yi)xi0θ1:=θ1αm1i=1m(yi^yi)xi1θn:=θnαm1i=1m(yi^yi)xin

特征缩放

对于多个特征值,如果这些特征值的数量级差别很大,在不做任何处理的情况下,利用梯度下降法最小化损失函数的过程将收敛很慢,比如下面的情况,对于特征x1x_1x1x2x_2x2
{0<x1<10001<x2<3 \begin{cases} 0<x_1<1000& \\ 1<x_2<3 \end{cases} {0<x1<10001<x2<3
它的收敛过程将非常缓慢。
那么我们如果解决这个问题呢?我们的目的是使每个特征值都尽量保持在同一数量级范围内,因此,可以对每个特征值进行如下操作:
xi=xi−μisi x_i =\frac{x_i-\mu_i}{s_i} xi=sixiμi
参数解释:
μi\mu_iμi:所有样本中特征xix_ixi的平均值
sis_isi:所有样本中特征xix_ixi的极差(max-min)

正规方程(Normal)法

梯度下降法中,为了最小化损失函数,每一次的迭代过程都要遍历样本中的各个数据。然而,利用正规方程,我们可以一步到位。
下面看一个例子:

x0x_0x0x1x_1x1x2x_2x2x3x_3x3x4x_4x4yyy
121045145460
114163240232
115343230315
18522136178

在这个例子中,一共有4个特征x1,x2,x3,x4x_1,x_2,x_3,x_4x1,x2,x3,x4,则:
X=[121045145114163240115343230⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅18422136] \pmb{X}=\left[ \begin{matrix} 1 &2104&5&1&45\\ 1 &1416&3&2&40\\ 1 &1534&3&2&30 \\ ···&···&···&···&···\\1 &842&2&1&36 \end{matrix} \right] XXX=11112104141615348425332122145403036
y=[460232315178] \pmb{y}=\left[ \begin{matrix}460\\232\\315\\178 \end{matrix}\right] yyy=460232315178
利用矩阵的相关运算可求得:
θ=(XTX)−1XTy \pmb{\theta}=(\pmb{X^TX})^{-1}\pmb{X^Ty} θθθ=(XTXXTXXTX)1XTyXTyXTy
对于一组含有m个样本,n个特征的数据:
利用xj(i)x_j^{(i)}xj(i)表示第i个样本的第j个特征值。
xi=[x0(i)x1(i)x2(i)⋅⋅⋅xn(i)] \pmb{x^{i}}=\left[\begin{matrix}x_0^{(i)}\\x_1^{(i)}\\x_2^{(i)}\\···\\x_n^{(i)}\end{matrix}\right] xixixi=x0(i)x1(i)x2(i)xn(i)
X=[x(1)x(2)x(3)⋅⋅⋅x(m)] \pmb{X}=\left[\begin{matrix}x^{(1)}\\x^{(2)}\\x^{(3)}\\···\\x^{(m)}\end{matrix}\right] XXX=x(1)x(2)x(3)x(m)
y=[y(1)y(2)y(3)⋅⋅⋅y(m)] \pmb{y}=\left[\begin{matrix}y^{(1)}\\y^{(2)}\\y^{(3)}\\···\\y^{(m)}\end{matrix}\right] yyy=y(1)y(2)y(3)y(m)
则:
θ=(XTX)−1XTy \pmb{\theta}=(\pmb{X^TX})^{-1}\pmb{X^Ty} θθθ=(XTXXTXXTX)1XTyXTyXTy

XTXX^TXXTX的不可逆情况

  1. 特征值中出现了多余的数据(比如x1=ax2x_1=ax_2x1=ax2aaa为常数)
  2. 过多的特征(样本的数量远小于特征的数量)

梯度下降法和正规方程法比较

梯度下降法
  • 需要我们手动选择学习率 α\alphaα
  • 需要很多次的迭代,而且每次迭代都要遍历所有数据
  • 但是当特征特征数量nnn比较大时(上百万或上千万),梯度下降法要比正规方程法效果好
正规方程法
  • 不需要选择学习率 α\alphaα
  • 不需要进行多次迭代
  • 需要计算矩阵的乘积和矩阵的逆((XTX)−1(X^TX)^{-1}(XTX)1),这个过程的复杂度大约为O(n3)O(n^3)O(n3),当nnn比较大时,所需的开销也会很大

因此,当nnn比较小时,通常选择正规方程法,当nnn比较大时,通常选择梯度下降法。

总结

通过上面的学习我们可以发现,单变量的回归是当n=1n=1n=1时的多变量回归。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值