線性回歸($linear\ regression$),目標就是用一個(n-1)維的東西,來擬合一些在(n)維圖形上的點,並且使得點集與擬合函數間的誤差最小。
如果自變量的個數只有一個,就稱為一元線性回歸;如果自變量的個數多於一個,就稱為多元線性回歸。
比如,我們想得到房屋的價格與房間個數、大小、狀況等多種因素之間的關系時,將這些因素作為自變量,將房屋價格作為因變量,這就是多元線性回歸。
其實,我們平常說的數據挖掘,就是擬合出來一個線性回歸模型。
舉個栗子
給定一個大小為$n$ 的數據集
$$\{ y_{i},x_{i1},...,x_{ia}\}_{i=1}^{n}$$
$\text{其中}\ x_{i1},...x_{id}$是第$i$個樣本的$d$個屬性值,$y_{i}$ 是 是該樣本待預測的目標。線性回歸模型假設目標$y_{i}$ 可以被屬性間的線性組合描述,即
$$y_{i}=\sum_{j=1}^{d}w_{j}x_{ij}+b,i=1,...,n$$
例如,我們現在要買一套房子,然后呢,我們統計了一下每個房源的大小,方向,作用點 ,位置,環境等信息,對於每個信息每個檔次,打出一個分,最后根據各個因素的影響的大小決定每個因素所占有的權重,之后我們的估價就是這些權重*分值的和了。這樣的話,我們就可以根據我們的估算去買房子了。
線性回歸模型有形式簡單和易於建模分析的優點,它在實際問題中得到了大量的應用。
線性回歸模型
線性回歸的一般模型為:
$$\widehat{y}=w_{0}+\sum_{i=1}^{n}w_{i}x_{i}$$
其中$\widehat{Y}$ 表示模型的預測結果,用來和真實值$Y$ 區分。模型要學習的參數(不嚴謹的說,就是每個因素所占有的權重)為 $w_{0},...,w_{n}$ 即:$W$。
如果我們構造:
$$\widehat{Y}=\widehat{y}$$
$$X=[1,x_{1},...,,x_{n}]^{T}$$
$$W=[w_{0},w_{1},...,w_{n}]^{T}$$
那么該模型可以寫為矩陣形式:
$$\widehat{Y}=W^{T}X$$
模型的評價標准
假設集合數據為 $D=(X_{1},Y_{1}),...,(X_{n},Y_{n})$ ,將集合的 $X$ 代入到模型中即可求得模型的預測值 $\widehat{Y}$。
我們需要給模型一個優化目標,使得學到的參數能夠讓預測值 $\widehat{Y}$ 。 盡可能地接近真實值$Y$。
這里我們引入損失函數Loss Function這個概念。
輸入任意一個數據樣本的目標值 $Y_{i}$ 和模型給出的預測值 $\widehat{Y_{i}}$,損失函數輸出一個非負的實值。這個實值通常用來反映模型誤差的大小。
對於線性回歸模型來講,最常見的損失函數就是均方誤差Mean Squared Error,MSE),它的形式是:
$$J(W)=MSE=\frac{1}{n}\sum_{i=1}^{n}(\widehat{Y_{i}}-Y_{i})^{2}$$
即對於一個大小為 $n$ 的集合,$MSE$是$n$ 個數據預測結果誤差平方的均值。
模型的求解方法
對於小數量級樣本以及矩陣滿秩的特殊情況,線性回歸模型是有解析解的。
將集合中的變量寫成矩陣形式:令
$$X=[X_{1},...,X_{n}]^{T},Y=[Y_{1},...,Y_{n}]^{T}$$
根據線性回歸模型,可以得到預測值 $\widehat{Y}=XW$
那么損失函數可以表示為:
$$J(W)=MSE=\frac{1}{n}\sum_{i=1}^{n}(\widehat{Y_{i}}-Y_{i})^{2}\frac{1}{n}(XW-Y)^{T}(XW-Y)$$
將損失函數$J$對變量$W$ 求導,並令其等於$0$可得:
$$\frac{\partial J(W)}{\partial W}=\frac{1}{n}(XW-Y)^{T}X=0$$
$$X^{T}XW=X^{T}Y$$
在$X^{T}X$的逆存在時可得
$$W=(X^{T}X)^{-1}X^{T}Y$$