假设某个体
x
有
d
个特征,即
x=(x1,x2,...,xd)
,
xi
是第i个特征,线性模型(linear model)试图通过特征的线性组合得到预测值,即
f(x)=wTx+b=w1x1+w2x2+...+wdxd+b
其中当
wi
是第i个特征的权重,既能调节特征的量纲,也能显示该特征对预测值的重要程度;
wT
=
(w1,w2,...,wd)
;
xT
=
(x1,x2,...,xd)
;
b
代表预测值中非
x
所能影响的那部分;当
d=1
时,便是最简单的线性模型
f(x)=wx+b
;
//是否能有个好的例子
只要能求出
w
和
b
,便能得到线性模型,该如何求得
w
和
b
呢?
假设训练数据集有n个个体,即
D={(x1,y1),(x2,y2),...,(xn,yn)}
,
xi
代表第
i
个个体,
yi
代表第
i
个个体所对应的真实值。
一.
f(x)=wx+b
天下难事必作于易,天下大事必作于细 —— 老子
让我们从最简单的线性模型
f(x)=wx+b
入手,即假设每个个体只有一个特征。我们希望预测值
f(xi)
和真实值
yi
尽可能接近,该如何衡量它们的差异呢?
直观来说,我们可以有两种方案:
1)|f(xi)−yi|
2)(f(xi)−yi)2
方案2便是高斯的
最小二乘法(least square method)。我们把所有个体的预测值和真实值之间的差异加总:
g(w,b)=∑i=1n(f(xi)−yi)2=∑i=1n(wxi+b−yi)2
我们的目标是求出
w
和
b
,让
g(w,b)
取得最小值。因此我们可以用偏导数求解:
⎧⎩⎨∂g(w,b)∂w=0∂g(w,b)∂b=0
解出:
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪w=∑ni=1yi(xi−x¯)∑ni=1x2i−nx¯2b=y¯−wx¯x¯=1n∑ni=1xiy¯=1n∑ni=1yi
二、
f(x)=wTx+b
接着我们由浅入深,对于多元回归模型
f(x)=wTx+b
,我们仍是希望让预测值和真实值的差异最小。同样,我们仍然选取最小二乘法来衡量预测值和真实值之间的差异:
g(w,b)=(wTx1+b−y1)2+(wTx2+b−y2)2+...+(wTxn+b−yn)2
g(w,b)=[(wTx1+b−y1),(wTx2+b−y2),...,(wTxn+b−yn)]⎡⎣⎢⎢⎢⎢(wTx1+b−y1)(wTx2+b−y2)...(wTxn+b−yn)⎤⎦⎥⎥⎥⎥
推导:
⎡⎣⎢⎢⎢⎢(wTx1+b−y1)(wTx2+b−y2)...(wTxn+b−yn)⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢(wTx1+b)(wTx2+b)...(wTxn+b)⎤⎦⎥⎥⎥⎥−⎡⎣⎢⎢⎢y1y2...yn⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢(xT1,1)(w,b)T(xT2,1)(w,b)T...(xTn,1)(w,b)T⎤⎦⎥⎥⎥⎥−⎡⎣⎢⎢⎢y1y2...yn⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢xT1,1xT2,1...xTn,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)T;令X=⎡⎣⎢⎢⎢⎢xT1,1xT2,1...xTn,1⎤⎦⎥⎥⎥⎥,Y=⎡⎣⎢⎢⎢y1y2...yn⎤⎦⎥⎥⎥,w~=(wT,b)
所以
g(w~)=(Xw~−Y)T(Xw~−Y)
,同样我们希望
g(w~)
求得最小值,因此我们继续采用偏导数求解:
∂g(w~)∂w~=0
推导:
g(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~=I
所以
∂g(w~)∂w~=2XTXw~−2XTY=0,XTXw~=XTY
最后的结果是
w~=(XTX)−1XTY