線性回歸是機器學習中最基礎最簡單的回歸算法了,現在關于線性回歸的原理做一個總結。
關于線性的概念,其實在高中就有了解了,兩個變量之間存在一次方函數關系()即為線性,其圖像在平面上是一條直線。
而線性回歸就是對給定的數據,找到一條均方誤差最小的直線或者說模型函數。這就是線性回歸的本質。
線性回歸的模型函數
線性回歸問題,給定的數據一般如下形式:
其中有m個樣本,每個樣本對應n維特征和一個輸出結果?,F在,我們的問題是對于一個新的數據,它對應的結果
是多少呢?如果使用線性回歸來解決這個問題,那么對應的模型應該如下:
我們增加一個的特征,可以簡化成:
其中是模型參數,
是每個樣本的n個特征值。
用矩陣形式表示上式就是:
其中為mxn維的矩陣,
為nx1的向量,得到的
為mx1的向量。m代表樣本的個數,n代表樣本的特征數。
正規方程(最小二乘法)求損失函數參數
線性回歸一般采用均方誤差作為損失函數,損失函數代數法可以表示為:
用矩陣的方式可以表示為:
上式中有兩個2,上面的2表示平方,下面的2表示二范數。繼續化簡得:
要求使損失函數最小時的參數,對
進行求導,令導數為0:
化簡,求出:
梯度下降法求損失函數參數
梯度下降法的思想:
(1)對賦值,這個值可以使隨機的
(2)改變的值,使得
按梯度下降的方向進行減小
(3)當下降到無法繼續下降時,即
對
的導數為0時,此時
即為最佳參數
采用梯度下降法,的更新規則是:
其中表示學習率,步長,由人工設置,經過若干次迭代,即可得到
的結果。
線性回歸的正則化(Lasso回歸和嶺回歸)
普通的線性回歸容易過擬合,為了防止過擬合,我們在建立線性模型的時候經常需要加入正則化項(正則項的作用是限制系數),于是出現了Lasso回歸和嶺回歸。
Lasso回歸是線性回歸的基礎上加上L1正則化,它的損失函數是:
Lasso適用于稀松矩陣(大部分系數為0)
嶺回歸是線性回歸的基礎上加上L2正則化,它的損失函數是:
嶺回歸適用于數據中存在共線性的情況(非滿秩矩陣-奇異矩陣)