筆者在之前的文章(機器學習-Bias-Variance Tradeoff)有提到處理Overfitting的方式可透過Ridge regression, Lasso regression來去處理,本次文章主要會簡介這兩種方法的差別

一、Lasso regression

透過在線性迴歸中加入L1懲罰函數(如下圖),目的在於讓模型中不要存在過多的參數,當模型參數越多時懲罰函數的值會越大

 

1.jpg

 

優點

  • Ridge模型一樣,Lasso模型亦會將具有相關性的變數推向彼此,並避免使得其中模型參數一個有極大正係數與另一個有極大負係數一起出現的情況。
  • Ridge模型最大的差別,就是Lasso會將不具影響力的變數迴歸係數變成0,等於可以自動化的進行變數篩選(Feature selection)

缺點

  • 當我們移除變數的同時也會犧牲掉模型的正確性。所以透過Lasso雖然可以產生的更清楚與簡潔的模型,提升模型的正確性,但同時也會降低模型的推廣性。

 

           111.jpg

 

二、Ridge regression

透過在線性迴歸中加入L2懲罰函數(如下圖),目的跟Lasso regression一樣,在於讓模型中不要存在過多的參數,針對過多參數的模型進行懲罰。

 

2.jpg

 

優點

  • Ridge模型會將具有相關性的變數推向彼此,並避免使得其中一個有極大正迴歸係數與另一個有極大負迴歸係數同時存在的情況。
  • 不相干的變數迴歸係數會被逼近為0(不會剛好等於0),我們可以藉此降低資料集中的雜訊,幫助我們更清楚的識別出模型中真正的訊號(signals)

 

缺點

  • Ridge模型會保留所有變數,因此無法像Lasso模型可做變數的篩選,因為Ridge只能將不具影響力的變數之回歸係數變成趨近於0(但不會剛好等於0),因此最後的模型可能還是會存在一些不重要的參數,多多少少還是會影響模型最後的正確性。

 

實務上要選擇Lasso Ridge regression 就模型計算出來的MSE來看,RidgeLasso模型所產生的最小MSE不會有太大差別,所以單純只看最小化MSE的結果來判斷要用哪一種模型,其實兩者結果是差不多的。不過就功能性來說,當使用者的模型中具有過多的參數,想自動化把不重要的變數給移除,那應該要選擇Lasso model;如果我們想找到模型當中重要的參數可以透過Ridge model來去辨別哪些參數是重要的,因為不重要的參數會在模式當中迴歸係數會趨近於0,但因為不會真的消失,所以可以根據迴歸係數的大小來得到重要參數的排名。

 

參考資料:

  1. https://www.datacamp.com/community/tutorials/tutorial-ridge-lasso-elastic-net
  2. https://www.jamleecute.com/regularized-regression-ridge-lasso-elastic/
arrow
arrow
    全站熱搜

    晨晰部落格新站 發表在 痞客邦 留言(0) 人氣()