天天看點

線性回歸模型_線性回歸模型原理及推導

今天我們來看一個最常見的機器學習模型——線性回歸(linear regression)模型。先舉個例子讓你明白什麼是線性回歸。

現在我們有房屋面積和價格的一些資料,如下圖:

線性回歸模型_線性回歸模型原理及推導

現在我們想知道的是,如果給一個新的房屋面積130m²,能否根據已知的資料來預測新的面積對應的價格是多少呢?這時,線性回歸模型就派上用場了。

我們先畫出已知資料的散點圖:

線性回歸模型_線性回歸模型原理及推導

那線性回歸要做什麼呢?它是模拟出一條直線,讓已知的資料點盡量落在直線上或直線周圍。效果如下圖紅線所示:

線性回歸模型_線性回歸模型原理及推導

用公式表示的話,這個線性模型就是一條直線:

f(x) = wx + b (1)

其中,w為系數,b為截距。

當我們的模型确定後,如果給定一個新資料x‘,隻需把x‘帶入(1)式,求得的y就是預測的價格了。

在談如何确定w和b之前,我們先來思考一個問題:假如房屋價格不僅僅受面積因素影響呢?比如還有廁所數量、房屋高度、房屋樓層數等等因素,這時我們又該如何建構我們的線性模型呢?

其實跟(1)式一樣,我們添加系數和輸入即可:

線性回歸模型_線性回歸模型原理及推導

假設我們有n個影響房屋價格的因素,對應的就是n個系數w。(2)式就是我們新的線性模型。那模型既然出來了,該怎麼求w和b呢?在求解之前,我們應該了解到,模型預測的結果f(x)是和實際的結果y有一定出入的。也就是說,模型在對原始資料進行訓練時,資料點并不一定都落在該模型上。這樣就會産生誤差,不同的w和b對應不同的線性模型,我們要找的就是誤差最小的那個模型所對應的w、b的值。

首先第一步,我們要找一個代價函數(cost function),用它來衡量我們預測的誤差,一般用平方和函數來表示:

線性回歸模型_線性回歸模型原理及推導

其中,J就是我們的代價函數,f(x)是我們的預測值,y是訓練集資料的實際值,m代表資料的個數。代價函數描述的其實是預測值和實際值差的平方和的均值,那我們在前面為什麼要加個1/2呢?這純粹是為了以後求導友善,而且并不影響我們對代價函數的優化。

然後,我們将預測函數f(x)做一個變形,寫成向量乘積的形式。

線性回歸模型_線性回歸模型原理及推導

則(2)式可改寫為:

線性回歸模型_線性回歸模型原理及推導

不難看出,f(x)可以寫作w和x兩個向量的乘積:

線性回歸模型_線性回歸模型原理及推導

進一步縮寫為:

線性回歸模型_線性回歸模型原理及推導

其中,w和x均為n+1維列向量。再将(4)式代入(3)式,可得:

線性回歸模型_線性回歸模型原理及推導

由f(x)可知,乘積項的求和可以寫為兩個向量乘積的形式。要想寫成向量形式,我們需要将J(w)做一個變形:

線性回歸模型_線性回歸模型原理及推導

展開,得到:

線性回歸模型_線性回歸模型原理及推導

其中,X 為m*(n+1)維矩陣,m是資料的樣本個數,n是每一個資料的特征。w為參數向量,y為實際值向量。

OK,現在我們已經把代價函數化簡完成了,但别忘了我們的目标是求當J(w)取最小值時,所對應w的值。可以證明J(w)為凸函數(證明過程暫略),是以當我們對J(w)求導時,令導數為0,J(w)即可取最小值,相應可求得w。(注意w為向量)

在求導之前,我們先記住幾個結論,一會就直接用了:

線性回歸模型_線性回歸模型原理及推導

随後,我們令k=Xw-y,則J(w)可寫為

線性回歸模型_線性回歸模型原理及推導

對其求導,應用結論1,得

線性回歸模型_線性回歸模型原理及推導

我們先求k',運用結論3,可得

線性回歸模型_線性回歸模型原理及推導

運用結論5,将其改寫為

線性回歸模型_線性回歸模型原理及推導

運用結論2,繼續求導可得

線性回歸模型_線性回歸模型原理及推導

運用結論4、5,并化簡

線性回歸模型_線性回歸模型原理及推導

将k=Xw-y代入并展開,可得

線性回歸模型_線性回歸模型原理及推導

到此為止,我們的求導過程就完成了。接下來,令導數為0,求得w的值即可。令J'(w)=0,可得

線性回歸模型_線性回歸模型原理及推導

一般情況下,矩陣

線性回歸模型_線性回歸模型原理及推導

為可逆矩陣(不可逆的情況我們以後會讨論),即可求得w的解為

線性回歸模型_線性回歸模型原理及推導

Bingo!(5)式就是我們在代價函數取最小值時,求得的參數向量w。在實際應用中,計算機會幫我們對(5)式求解,得到w的值。但當我們的資料量非常大時,可能會拖慢運作速度。這時,另一種對J(w)優化的算法——“梯度下降法”就該上場了,我們下篇再對它進行介紹。

繼續閱讀