1. 前言
線性回歸形式簡單、易於建模,但卻蘊涵着機器學習中一些重要的基本思想。許多功能更為強大的非線性模型(nonlinear model)可在線性模型的基礎上通過引入層級結構或高維映射而得。此外,由於線性回歸的解\(\theta\)直觀表達了各屬性在預測中的重要性,因此線性回歸有很好的可解釋性。
2. 線性回歸原理
線性回歸遇到的問題一般是這樣的。我們有\(m\)個樣本,每個樣本對應於\(n\)維特征和一個結果輸出。
訓練數據的形式:
我們主要做的是通過找到參數\((\theta_0,\theta_1,...\theta_m)\),線性回歸模型如下:
矩陣化如下:
得到了模型,我們需要求出需要的損失函數,一般線性回歸我們用均方誤差作為損失函數。損失函數的代數法表示如下:
矩陣化如下:
3. 線性回歸的算法
對於線性回歸的損失函數\(J(\mathbf\theta)=\frac{1}{2}(\mathbf{X\theta}-\mathbf{Y})^T(\mathbf{X\theta}-\mathbf{Y})\),我們常用的有兩種方法來求損失函數最小化時候的\(θ\)參數:一種是梯度下降法,一種是最小二乘法。
如果采用梯度下降法,則\(\theta\)的迭代公式是這樣的:
通過若干次迭代后,我們可以得到最終的\(\theta\)的結果
如果采用最小二乘法,則\(\theta\)的結果公式如下:
當然線性回歸,還有其他的常用算法,比如牛頓法和擬牛頓法,這里不詳細描述。
4. 多項式線性回歸
我們遇到的數據不一定都是線性的形式,如果式\(y=x_1^2+x_2^2\)的模型,那線性回歸很難擬合這個函數,這時候就需要用到多項式回歸了。
回到我們開始的線性模型,\(h_\theta(x_1, x_2, ...x_n) = \theta_0 + \theta_{1}x_1 + ... + \theta_{n}x_{n}\), 如果這里不僅僅是x的一次方,而是二次方,那么模型就變成了多項式回歸。這里寫一個只有兩個特征的2次多項式回歸的模型:
我們令\(x_0 = 1, x_1 = x_1, x_2 = x_2, x_3 =x_1^{2}, x_4 = x_2^{2}, x_5 = x_{1}x_2\),這樣我們就得到了下式:
可以發現,我們又重新回到了線性回歸,這是一個五元線性回歸,可以用線性回歸的方法來完成算法。對於每個二元樣本特征\((x_1,x_2)\),我們得到一個五元樣本特征\((1,x_1,x_2,x^2_1,x^2_2,x_1x_2)\),通過這個改進的五元樣本特征,我們重新把不是線性回歸的函數變回線性回歸,但是達到了非線性擬合的效果。
5.廣義線性回歸
在上一節的線性回歸的多項式中,我們對樣本特征進行了變換,用線性回歸完成了非線性回歸的效果。這里我們對於特征\(y\)做推廣。比如我們的輸出\(Y\)不滿足和\(X\)的線性關系,但是\(logY\)和\(X\)滿足線性關系,模型函數如下:
這樣對與每個樣本的輸入\(y\),我們用\(logy\)去對應, 從而仍然可以用線性回歸的算法去處理這個問題。我們把 \(logy\)一般化,假設這個函數是單調可微函數\(g(.)\),則一般化的廣義線性回歸形式是:\(g(Y)=Xθ\)或者\(Y=g^{-1}(Xθ)\)。這個函數g(.)我們通常稱為聯系函數。后面會講到的邏輯回歸這是在聯系函數的基礎上進行分類的。
6. 線性回歸的正則化
為了防止模型的過擬合,我們在建立線性模型的時候經常需要加入正則化項。一般有L1正則化和L2正則化。
6.1 L1正則化Lasso回歸
L1正則化通常稱為Lasso回歸,它和一般線性回歸的區別是在損失函數上增加了一個L1正則化的項,L1正則化的項有一個常數系數\(\alpha\)來調節損失函數的均方差項和正則化項的權重,具體Lasso回歸的損失函數表達式如下:
其中\(n\)為樣本個數,\(\alpha\)為常數系數,需要進行調優。\(|θ|_1\)為L1范數。
Lasso回歸可以使得一些特征的系數變小,甚至還是一些絕對值較小的系數直接變為0。增強模型的泛化能力。
6.2 L2正則化Ridge回歸
L2正則化通常稱為Ridge回歸,它和一般線性回歸的區別是在損失函數上增加了一個L2正則化的項,和Lasso回歸的區別是Ridge回歸的正則化項是L2范數,而Lasso回歸的正則化項是L1范數。具體Ridge回歸的損失函數表達式如下:
其中\(\alpha\)為常數系數,需要進行調優。\(|θ|2\)為L2范數。
Ridge回歸在不拋棄任何一個特征的情況下,縮小了回歸系數,使得模型相對而言比較的穩定,但和Lasso回歸比,這會使得模型的特征留的特別多,模型解釋性差。
7. 總結
線性回歸的算法本身並不復雜,但是在它的基礎上延伸出來的內容可謂是相當豐富,涉及到了多項式中的特征轉換(特征工程)、針對過擬合的正則化項、運用非常廣泛的邏輯回歸等。要真正理解它需要對機器學習的知識融匯貫通。