學習筆記233—嶺回歸和Lasso回歸區別


偏差和方差

機器學習算法針對特定數據所訓練出來的模型並非是十全十美的,再加上數據本身的復雜性,誤差不可避免。說到誤差,就必須考慮其來源:模型誤差 = 偏差(Bias)+ 方差(Variance)+ 數據本身的誤差。其中數據本身的誤差,可能由於記錄過程中的一些不確定性因素等導致,這個我們無法避免,能做的只有不斷優化模型參數來權衡偏差和方差,使得模型誤差盡可能降到最低。
偏差:導致偏差的原因有多種,其中一個就是針對非線性問題使用線性方法求解,當模型欠擬合時,就會出現較大的偏差
方差:產生高方差的原因通常是由於模型過於復雜,即模型過擬合時,會出現較大的方差
通常情況下,我們降低了偏差就會相應地使得方差提高,降低了方差就會相應地提高了偏差,所以在機器學習的模型中,我們總是希望找到一組最優的參數,這些參數能權衡模型的偏差和方差,使得模型性能達到最優。我在知乎上找到這樣一張圖方便各位理解。

 嶺回歸

針對高方差,即過擬合的模型,解決辦法之一就是對模型進行正則化:限制參數大小(由於本篇博客所提到的嶺回歸和Lasso都是正則化的特征選擇方法,所以對於其他解決過擬合的方法不多贅述)當線性回歸過擬合時,權重系數wj就會非常的大,嶺回歸就是要解決這樣的問題。嶺回歸(Ridge Regression)可以理解為在線性回歸的損失函數的基礎上,加,入一個L2正則項,來限制W不要過大。其中λ>0,通過確定λ的值可以使得模型在偏差和方差之間達到平衡,隨着λ的增大,模型的方差減小,偏差增大。

我們可以像線性回歸一樣,利用最小二乘法求解嶺回歸模型的參數,對W求導,令倒數等於0,可求得W的解析解,其中I為m x m的單位矩陣,所以也可以說嶺回歸就是在矩陣X^TX上加一個λI使得矩陣非奇異,進而能對XTX+λI求逆:

為了可視化,我們還引用上篇博客的測試用例,使用Pipeline封裝多項式特征,歸一化,線性回歸方法,為了說明問題並將PolynomialFeatures的參數degree調整到40,此時模型很明顯得出現了過擬合,產生了高方差:

  

 使用sklearn封裝的嶺回歸方法進行測試,詳情請見

 

 

 

對比圖中紅線可以看到,λ=0.01時,雖然多項式特征的degree=40,相較於直接使用線性回歸,嶺回歸已經很好的解決高方差的問題,但λ不能過大,當λ=1000時明顯的出現了欠擬合,相應的模型的偏差也增大了,我們的目的就是要權衡偏差和方差,使模型達到最優。

Lasso

Lasso回歸和嶺回歸類似,不同的是,Lasso可以理解為在線性回歸基礎上加入一個L1正則項,同樣來限制W不要過大。其中λ>0,通過確定λ的值可以使得模型在偏差和方差之間達到平衡,隨着λ的增大,模型的方差減小,偏差增大。

Lasso趨向於使得一部分w值變為0,所以可以作為特征選擇用,因為這里的L1正則項並不是處處可導的,所以並不能直接使用基於梯度的方法優化損失函數,若要從底層實現,可以使用擬牛頓法的BFGS算法,逐步向前回歸,我這里直接用sklearn封裝的Lasso,請參見

 任然使用Pipeline封裝

 

 

 可以看到,Lasso的收斂速度要比嶺回歸要快的,當λ=10的時候紅線就已經近乎和坐標軸平行了,產生了很大的偏差。

原文鏈接:https://blog.csdn.net/Joker_sir5/article/details/82756089

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM