概述
- 優點:容易計算,易於理解和實現
- 缺點:容易欠擬合
- 適用數據類型:數值型和標稱型
口頭描述
線性迴歸試圖構造一個線性函數,去擬合儘可能多的樣本點。重點是如何確定線性函數的參數,使得該函數儘量穿過樣本點,一般使用均方誤差最小化來作爲參數擬合效果的標準。
算法推導(解方程的方法)
- 給定訓練數據集D={(xi,yi)}i=1m,樣本xi由d個屬性描述,線性模型爲:
fω(x)=ωTx+b,f(x)⋍y
- 使用均方誤差衡量f(x)與y之間的差別,我們的目標是使他們的差別最小化。
Es(squareloss)=i=1∑m(f(xi)−yi)2
- 使用矩陣進行表達
- 參數向量矩陣:
ω^=(ω;b)=⎣⎢⎢⎢⎢⎡ω1ω2...ωdb⎦⎥⎥⎥⎥⎤
注意: ω^是d+1行1列的
- 數據集矩陣:
X=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2…...⋱…x1dx2d⋮xmd11⋮1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x1Tx2T⋮xmT11⋮1⎦⎥⎥⎥⎤
注意:最後一列全是1,前d個元素對應樣本的d個屬性值
- 標記矩陣:
y=⎣⎢⎢⎢⎡y1y2⋮ym⎦⎥⎥⎥⎤
- 則均方誤差爲:
Es=(y−Xω^)T(y−Xω^)
- 令Eω^=(y−Xω^)T(y−Xω^),對ω^求導得:
∂ω^∂Eω^=2XT(Xω^−y)
令上式爲零可得ω^的最優解的閉式解
ω^∗=(XTX)−1XTy
解出上式,也就得到了模型的公式:
f(xi^)=xi^T(XTX)−1XTy
其中,
xi^=⎣⎢⎢⎢⎢⎢⎡xi1xi2⋮xid1⎦⎥⎥⎥⎥⎥⎤
算法推導(梯度下降)
目標是使均方誤差最小化,即:
minE(squareloss)=2m1i=1∑m(fω^(xi)−yi)2
這裏的2m1是爲了方便求偏導
對誤差函數做偏導,對於每個特徵(ωn),其梯度(偏導)爲:
∂ωn∂E=m1i=1∑m(fω^(xi)−yi)⋅xin
這裏是對每一個特徵進行了求導,因爲
fω^(xi)=ω0xi0+ω1xi1+⋯+ωnxin(xi:theithdata)
則梯度下降的流程就是:
重複此過程直到收斂 {
ω0:=ω0−αm1i=1∑m(fω^(xi)−yi)⋅xi0
ω1:=ω1−αm1i=1∑m(fω^(xi)−yi)⋅xi1
⋮
ωn:=ωn−αm1i=1∑m(fω^(xi)−yi)⋅xin
}
解釋一下,∑i=1m(fω^(xi)−yi)的意思是計算每個預測值與實際值的差別的總和。另外,對每個ωi進行更新都是獨立的,應當把所有的ωi全部計算出來後再對其進行賦值更新。
XTX的要求
當矩陣XTX是滿秩矩陣的時候,上述最優解成立,但是很多情況下XTX往往不是滿秩矩陣,此時可以解出ω^,他們都能使均方誤差最小化,選擇哪一個作爲輸出,將由學習算法的歸納偏好決定,常見的做法是引入正則化項。
對數線性迴歸
我們希望迴歸模型去逼近lny不是y時,模型變爲
lny=ωTx+b
這就是對數線性迴歸