# Ridge & Lasso Regression ###### tags: `AI` 機器學習模型的目標函數中有兩個非常重要的元素 * 損失函數 (Loss function): 損失函數衡量預測值與實際值的差異,讓模型能往正確的方向學習 * 正則化(Regularization): 正則化則是避免模型變得過於複雜,造成過擬合 (Over-fitting) 如果能限制參數w的增長,使w不會變得特別大,那麼模型對輸入w中噪聲的敏感度就會降低。這就是Ridge Regression and Lasso Regrission的基本思想。 為了限制模型參數w的數值大小,就在模型原來的目標函數上加上一個懲罰項,這個過程叫做正則化(Regularization),同時是防止overfitting的手段。 **目標函數 = 損失函數 + 正則化** LASSO 跟 RIDGE 本身就是一種回歸模型,一般是指 linear regression + 正規化係數。 如果懲罰項是參數的L1正規化,就是套索回歸(Lasso Regrission) 如果懲罰項是參數的L2正規化,就是脊回歸(Ridge Regression) ![](https://i.imgur.com/qbdVIGR.png) 這兩種都是希望模型的參數值不要太大,原因是參數的數值變⼩,噪音對最終輸出的結果影響越小,提升模型的泛化能力,但也讓模型的擬合能⼒下降。 ### 判斷過擬合 大的係數可以把X微小的變動放大,通過多個正負項的疊加盡量把每個點都擬合上。這就是在日常實踐中判斷過度擬合的一個重要標準,係數如果大的離譜,多半是過度擬合了。 ## Ridge Regression 當使用最小平方法(least squares method)計算線性回歸模型參數的時候,如果數據集合矩陣X,存在多重共線性,那麼最小平方法對輸入變量中的噪聲非常的敏感,其解會極為不穩定。而Ridge Regression就可以解決這個問題。 :::warning Ridge 主要在處理泛化方面的問題, 共線性處理的效果沒有 Lasso 直接 (Lasso 是挑選較少的特徵以提高泛化能力, 共線性太高的特徵因此只會保留其一,而 Ridge 某種意義上, 是盡可能保留所有特徵, 讓係數較小來提高泛化能力, 因此無法有效排除共線性) 此外也能用相關係數, 略去相關性太高的特徵 ::: 擬合的誤差要小,同時係數的平方不能太大 ![](https://i.imgur.com/t40sY16.png) ## Lasso Regression 不像Ridge模型只會將係數逼近到接近零(但不會真的是0),Lasso模型則真的會將係數推進成0(如下圖)。因此,Lasso模型不僅能使用正規化(regulariztion)來優化模型,亦可以自動執行變數篩選(Feature selection)。 ![](https://i.imgur.com/VrrQZhk.png) 從上圖我們可以看到,在log(λ)=−6時,所有8個變數(圖表上方數字)都還包含在模型內,而當在log(λ)=−3時只剩下6個變數,最後當在log(λ)=−1時,只剩2個變數被保留在模型內。因此,當遇到資料變數非常多時,Lasso模型是可以幫你識別並挑選出有最強(也最一致)訊號的變數。 擬合的誤差要小,同時係數的絕對值不能太大 ![](https://i.imgur.com/EkrKJF0.png) ## 如何選擇懲罰力度 有一個相對標準的做法,用赤池信息準則(AIC)或貝葉斯信息準則(BIC)進行判斷。 AIC大致都是關於懲罰力度的U型函數,條件相同的情況下AIC越小越好,直接選取AIC最低點對應的懲罰力度alpha。一個例子就是下圖。 ![](https://i.imgur.com/Eec8oRY.png) :::info LASSO 與 Ridge 就是回歸模型加上不同的正則化函數 ::: ## 參考 [Linear least squares, Lasso,ridge regression有何本质区别?](https://www.zhihu.com/question/38121173) [Ridge Regression](https://blog.csdn.net/daunxx/article/details/51578787) [Regularized Regression | 正規化迴歸 – Ridge, Lasso, Elastic Net | R語言](https://www.jamleecute.com/regularized-regression-ridge-lasso-elastic/)