嶺回歸(Ridge)和套索回歸(Lasso)的原理及理解


偏差和方差

   在學習Ridge和Lasso之前,我們先看一下偏差和方差的概念。

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

 

嶺回歸(Ridge)

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

 

 

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

 

套索回歸(Lasso)

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

 

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

 

總結

        Lasso由於使用L1正則項,所以具有一定的特征選擇功能,因為L1正則傾向於產生稀疏稀疏,它可以將一些“對標簽沒有用處”的特征對應的系數壓縮為0,進而將對結果有較大影響的特征突顯出來,而嶺回歸中L2正則項不具備這個功能,它只會講一些無關特征的系數降到一個較小的值,但不會降為0。並且L2正則有解析解,L1沒有,所以還有一種對嶺回歸和Lasso折中的方法------彈性網絡(Elastic Net)
 

 

轉載於:https://blog.csdn.net/Joker_sir5/article/details/82756089

原作者:Joker_sir5

 

 

 


免責聲明!

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



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