多元线性模型(含公式推导)-回归-监督学习-机器学习

本文深入解析了线性模型的工作原理及参数求解方法,包括简单线性回归和多元线性回归,并介绍了如何使用最小二乘法来求解模型参数。

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

  假设某个体xxd个特征,即x=(x1,x2,...,xd)x=(x1,x2,...,xd)xixi是第i个特征,线性模型(linear model)试图通过特征的线性组合得到预测值,即

f(x)=wTx+b=w1x1+w2x2+...+wdxd+bf(x)=wTx+b=w1x1+w2x2+...+wdxd+b
其中当wiwi是第i个特征的权重,既能调节特征的量纲,也能显示该特征对预测值的重要程度;wTwT=w1w2...wd(w1,w2,...,wd)xTxT=x1x2...xd(x1,x2,...,xd)bb代表预测值中非x所能影响的那部分;当d=1d=1时,便是最简单的线性模型f(x)=wx+bf(x)=wx+b

//是否能有个好的例子

只要能求出wwb,便能得到线性模型,该如何求得wwb呢?

  假设训练数据集有n个个体,即D={(x1,y1),(x2,y2),...,(xn,yn)}D={(x1,y1),(x2,y2),...,(xn,yn)}xixi代表第ii个个体,yi代表第ii个个体所对应的真实值。

一.f(x)=wx+b

天下难事必作于易,天下大事必作于细 —— 老子
  让我们从最简单的线性模型f(x)=wx+bf(x)=wx+b入手,即假设每个个体只有一个特征。我们希望预测值f(xi)f(xi)和真实值yiyi尽可能接近,该如何衡量它们的差异呢?
  直观来说,我们可以有两种方案:
1)|f(xi)yi|1)|f(xi)−yi|
2)(f(xi)yi)22)(f(xi)−yi)2
  方案2便是高斯的最小二乘法(least square method)。我们把所有个体的预测值和真实值之间的差异加总:
g(w,b)=i=1n(f(xi)yi)2=i=1n(wxi+byi)2g(w,b)=∑i=1n(f(xi)−yi)2=∑i=1n(wxi+b−yi)2
  我们的目标是求出wwb,让g(w,b)g(w,b)取得最小值。因此我们可以用偏导数求解:
g(w,b)w=0g(w,b)b=0{∂g(w,b)∂w=0∂g(w,b)∂b=0

  解出:
w=ni=1yi(xix¯)ni=1x2inx¯2b=y¯wx¯x¯=1nni=1xiy¯=1nni=1yi{w=∑i=1nyi(xi−x¯)∑i=1nxi2−nx¯2b=y¯−wx¯x¯=1n∑i=1nxiy¯=1n∑i=1nyi

二、f(x)=wTx+bf(x)=wTx+b
  接着我们由浅入深,对于多元回归模型f(x)=wTx+bf(x)=wTx+b,我们仍是希望让预测值和真实值的差异最小。同样,我们仍然选取最小二乘法来衡量预测值和真实值之间的差异:
g(w,b)=(wTx1+by1)2+(wTx2+by2)2+...+(wTxn+byn)2g(w,b)=(wTx1+b−y1)2+(wTx2+b−y2)2+...+(wTxn+b−yn)2

g(w,b)=[(wTx1+by1),(wTx2+by2),...,(wTxn+byn)](wTx1+by1)(wTx2+by2)...(wTxn+byn)g(w,b)=[(wTx1+b−y1),(wTx2+b−y2),...,(wTxn+b−yn)][(wTx1+b−y1)(wTx2+b−y2)...(wTxn+b−yn)]

  推导:
(wTx1+by1)(wTx2+by2)...(wTxn+byn)=(wTx1+b)(wTx2+b)...(wTxn+b)y1y2...yn=(xT1,1)(w,b)T(xT2,1)(w,b)T...(xTn,1)(w,b)Ty1y2...yn=xT1,1xT2,1...xTn,1(wT,b)y1y2...yn=X(wT,b)y1y2...yn=X(wT,b)Y=Xw~Y[(wTx1+b−y1)(wTx2+b−y2)...(wTxn+b−yn)]=[(wTx1+b)(wTx2+b)...(wTxn+b)]−[y1y2...yn]=[(x1T,1)(w,b)T(x2T,1)(w,b)T...(xnT,1)(w,b)T]−[y1y2...yn]=[x1T,1x2T,1...xnT,1](wT,b)−[y1y2...yn]=X(wT,b)−[y1y2...yn]=X(wT,b)−Y=Xw~−Y
wTxi+b=(xTi,1)[wb]=(xTi,1)(w,b)TX=xT1,1xT2,1...xTn,1,Y=y1y2...yn,w~=(wT,b)注:wTxi+b=(xiT,1)[wb]=(xiT,1)(w,b)T;令X=[x1T,1x2T,1...xnT,1],Y=[y1y2...yn],w~=(wT,b)
  所以g(w~)=(Xw~Y)T(Xw~Y)g(w~)=(Xw~−Y)T(Xw~−Y),同样我们希望g(w~)g(w~)求得最小值,因此我们继续采用偏导数求解:

g(w~)w~=0∂g(w~)∂w~=0

推导:
g(w~)=(Xw~Y)T(Xw~Y)=((Xw~)TYT)(Xw~Y)=(Xw~)TXw~YTXw~(Xw~)TY+YTY=w~TXTXw~YTXw~w~TXTY+YTYg(w~)=(Xw~−Y)T(Xw~−Y)=((Xw~)T−YT)(Xw~−Y)=(Xw~)TXw~−YTXw~−(Xw~)TY+YTY=w~TXTXw~−YTXw~−w~TXTY+YTY
因为dw~w~Tdw~=2w~,dw~Tdw~=Idw~w~Tdw~=2w~,dw~Tdw~=I
所以g(w~)w~=2XTXw~2XTY=0XTXw~=XTY∂g(w~)∂w~=2XTXw~−2XTY=0,XTXw~=XTY
最后的结果是w~=(XTX)1XTYw~=(XTX)−1XTY

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值