過擬合、正則化、嶺迴歸、LASSO迴歸
ps.之前啃ESL這本書的時候,接觸到這塊內容,希望能結合自己的理解,把線性迴歸正則化的內容解釋清楚。從爲什麼出現線性迴歸的衍生方法?(最小二乘(正規方程法)解決不了)到傳統方法解決不了的情況會帶來什麼問題?(過擬合)再到如何處理這種問題?(正則化)最後介紹正則化的幾種方法。(嶺迴歸和LASSO)
爲什麼會出現線性迴歸的衍生方法——正規方程法的侷限
tips.正規方程法的侷限或者叫最小二乘法的侷限(在ESL中)希望小夥伴們不要對這兩個詞有什麼誤解,正規方程就是將最小二乘的線性方程組拓展到矩陣的一種解法。
最小二乘法可以將誤差方程轉化爲有確定解的代數方程組(其方程式數目正好等於未知數的個數),從而可求解出這些未知參數。這個有確定解的代數方程組稱爲最小二乘法估計的正規方程(或稱爲法方程)。
——百度百科
上篇博文的最後介紹了求解線性迴歸的正規方程法(☞詳情請戳☜)。通過矩陣運算,求解得到係數的估計:其中,是的逆矩陣。
由此,我們可以得到一個限制條件:必須可逆。但是在如下情況時矩陣不可逆:
1.存在線性相關的特徵—多重共線性 。
例如:一個電信數據集中,存在變量:白天通話時長(Day_Mins)、白天通話話費(Day_Charge),顯而易見,通話時長越久,話費自然越高。通過做相關圖,兩個變量存在嚴重的正相關。
2.特徵數據太多(樣本數m < 特徵數n)
PS.ESL中通過解釋力Interpretation 和預測精度Prediction accuracy兩個角度解釋最小二乘法的侷限:
There are two reasons why we are often not satisfied with the least squares estimates (3.6).
• The first is prediction accuracy: the least squares estimates often have low bias but large variance.Prediction accuracy can sometimes be improved by shrinking or setting some coefficients to zero. By doing so we sacrifice a little bit of bias to reducethe variance of the predicted values, and hence may improve the overall prediction accuracy.
• The second reason is interpretation. With a large number of predictors, we often would like to determine a smaller subset that exhibit the strongest effects. Inorder to get the “big picture” ,we are willing to sacrifice some of the small details.
簡譯過來爲:
Prediction accuracy(預測精度) | Interpretation(解釋力) |
---|---|
當n(觀測數量)、p(特徵數)很接近時,模型擬合效果差。爲了提高泛化能力,常常表現出低偏倚,高方差的特點。 | 預測變量較多時,造成:①模型複雜度增加②多重共線性。 |
上述兩種情況都是因爲特徵問題而導致最小二乘無法求解線性迴歸,這時針對特徵的處理辦法有:
- 子集選擇
- 降維
- 特徵收縮——正則化
子集選擇和降維比較容易理解,在這裏,我們主要梳理正則化的概念。
那正則化是做什麼呢?首先我們要說一說過擬合的概念。
過擬合
模型複雜度
在上述特徵數較多的場景,不可避免的會帶來模型複雜度增大的情形,我們針對特徵的處理方法也是在降低模型複雜度。模型複雜度體現在哪些方面呢?比如說:
在我們擬合模型時,由於我們希望得到更好的泛化誤差,容易對訓練集擬合過於徹底,這時係數較多,可能有很多係數很大,模型較複雜。這時,訓練數據一點兒變動會導致預測結果產生很大變動,模型泛化能力會很弱。
- 例1(從interpretation上降低模型複雜度):若一個因變量Y,其影響因素X有1000個:,若通過學習之後只剩下10個變量,那麼就認爲這10個因素所提供的信息量起決定性作用,就可以只分析這10個變量:模型整體可解釋性更強。
- 例2(從減少參數上降低模型複雜度)同樣是Endrew Ng的房價例子
上圖是從簡單的參數較少的模型到複雜的參數較多模型的函數曲線變化圖。
在這個時候就該“奧卡姆”出場了~~
奧卡姆剃刀原理:在所有可能的模型中,我們應該選擇能夠
很好地解釋
已知數據,並且十分簡單
的模型。
綜上,模型複雜度越高就會導致模型泛化能力越弱。
通過R做圖如下:(其中紅色曲線是測試誤差;藍色曲線是訓練誤差。)
若有需要代碼的小夥伴,請戳☞傳送門☜
過擬合的概念
說了這麼多,其實過擬合就是模型在訓練數據上擬合的過於徹底,從而導致學習了較多訓練數據獨有的特徵,使得模型在新的測試數據上表現較差。
我們舉一個不太恰當的例子:我們想要根據一些特徵來判斷一個人是男是女,由於我們訓練數據中的“髮長”這個特徵男生都是短髮、女生大多是長髮,這時我們的測試集中存在的長髮男生就可能被錯判成女生。
防止過擬合的辦法
- 減少特徵數:減少一些維度,降低複雜度。
- 增加數據量:數據量越大模型擬合越好。
- 正則化(Regularized):增加限制項縮減所有參數。
正則化
正則化就是通過增加一些限制項來縮減係數,達到降低模型複雜度的目的。
上篇博客,我們引入損失函數求解迴歸係數,使損失函數最小化,現在,要選取使損失函數最小化的最小的模型複雜度。而此時需要正則化項來達到控制模型複雜度的目的:其中,是正則化參數,爲正則化項。我們最終的目的是使帶罰項的損失函數達到最小,用一個例子來看——
通過來簡化函數爲了使上式儘可能的小,可以想象,若我們加了一個較大的?,這時要使最小化,最好的辦法就是使 、趨向於0,得到右圖簡單模型。
λ的目標就是在損失函數最小化
和參數最小化
之間權衡。
接下來要介紹的嶺迴歸和LASSO迴歸就是針對正則化項的不同表現形式。
嶺迴歸(Ridge Regression)
1. Ridge迴歸基本思想
在迴歸係數平方和小於一個常數的約束下,使殘差平方和最小化,從而限制迴歸係數的大小。
2. 求解嶺迴歸——正規方程法
由上推導可得,
由於對角線增加了看起來像一條山嶺,正是其嶺迴歸的由來。
3. 嶺係數
爲嶺係數,越小,參數數變化幅度越大。因爲我們剛纔說過代表對參數的懲罰(壓縮)程度,較大的會對係數懲罰越大。
4. 嶺迴歸的特點
參數逐步減小,但不會縮減到0
LASSO迴歸(Least absolute shrinkage and selection operator)
1. LASSO迴歸基本思想
在迴歸係數絕對值之和小於一個常數的約束下,使殘差平方和最小化。
通過構造一個一階懲罰函數獲得一個精煉的模型,最終確定一些指標(變量)的係數爲零(嶺迴歸估計係數等於 0 的機會微乎其微,造成篩選變量困難)
2. LASSO迴歸的特點
- 若LASSO和Ridge採用同樣的梯度下降更新權值,得到結果爲每次減少一個固定的值,從而能使某些係數縮減到0,得到解釋性強的模型。
上圖LASSO和嶺迴歸的係數限制爲:
L1正則化約束:
L2正則化約束:
Lasso損失函數等值線與正則化約束交點——使其中一個係數爲0,此時實現了特徵選擇。
Ridge既要滿足損失函數儘可能小,又要滿足約束條件,只能在切點處。因爲若想讓Ridge交在係數爲0 處,需要使損失函數的等高線向外擴張,此時不滿足損失函數最小條件。
3. 嶺跡圖
在ESL中,上面的嶺跡圖和剛纔Ridge嶺迴歸的不同,我一開始也是很懵,後來明白ESL嶺跡圖中橫座標爲t(有沒有很熟悉,是嶺迴歸和lasso迴歸的約束值~),t越小,說明對係數的懲罰越大,係數越會縮減到0。(如果還沒有清楚,請拿出筆畫一畫,t減小,上圖○和◇向原點移動,取值範圍越小)
寫在最後
本文主要介紹了一些線性迴歸的衍生方法,通過發現常規最小二乘解決不了的問題,找到其原因,對其進行優化,增加正則化項,使其變爲線性迴歸可解決的問題。