套索回歸算法概述
套索回歸算法簡介
在統計學和機器學習中,套索回歸是一種同時進行特征選擇和正則化(數學)的回歸分析方法,旨在增強統計模型的預測準確性和可解釋性,
正則化是一種回歸的形式,它將系數估計(coefficient estimate)朝零的方向進行約束、調整或縮小。也就是說,正則化可以在學習過程中降低模型復雜度和不穩定程度,從而避免過擬合的危險。一個簡單的線性回歸關系如下式。其中 Y 代表學習關系,β 代表對不同變量或預測因子 X 的系數估計。
Y ≈ β_0 + β_1X_1 + β_2X_2 + …+ β_pX_p
擬合過程涉及損失函數,稱為殘差平方和(RSS)。系數選擇要使得它們能最小化損失函數。
這個式子可以根據你的訓練數據調整系數。但如果訓練數據中存在噪聲,則估計的系數就不能很好地泛化到未來數據中。這正是正則化要解決的問題,它能將學習后的參數估計朝零縮小調整。
套索和嶺回歸都是正則化的方法,我們將對比著描述,其中套索需要最小化下圖的函數:
很明顯,這種變體只有在懲罰高系數時才有別于嶺回歸。它使用 |β_j|(模數)代替 β 的平方作為懲罰項。在統計學中,這被稱為 L1 范數。讓我們換個角度看看上述方法。嶺回歸可以被認為是求解一個方程,其中系數的平方和小于等于 s。而 套索 可以看作系數的模數之和小于等于 s 的方程。其中,s 是一個隨收縮因子 λ 變化的常數。這些方程也被稱為約束函數。
假定在給定的問題中有 2 個參數。那么根據上述公式,嶺回歸的表達式為 β12 + β22 ≤ s。這意味著,在由 β12 + β22 ≤ s 給出的圓的所有點當中,嶺回歸系數有著最小的 RSS(損失函數)。同樣地,對 套索 而言,方程變為 |β1|+|β2|≤ s。這意味著在由 |β1|+|β2|≤ s 給出的菱形當中,套索 系數有著最小的 RSS(損失函數)。
下圖描述了這些方程。
上圖的綠色區域代表約束函數域:左側代表 套索,右側代表嶺回歸。其中紅色橢圓是 RSS 的等值線,即橢圓上的點有著相同的 RSS 值。對于一個非常大的 s 值,綠色區域將會包含橢圓的中心,使得兩種回歸方法的系數估計等于最小二乘估計。但是,上圖的結果并不是這樣。在上圖中,套索 和嶺回歸系數估計是由橢圓和約束函數域的第一個交點給出的。因為嶺回歸的約束函數域沒有尖角,所以這個交點一般不會產生在一個坐標軸上,也就是說嶺回歸的系數估計全都是非零的。然而,套索 約束函數域在每個軸上都有尖角,因此橢圓經常和約束函數域相交。發生這種情況時,其中一個系數就會等于 0。在高維度時(參數遠大于 2),許多系數估計值可能同時為 0。
這說明了嶺回歸的一個明顯缺點:模型的可解釋性。它將把不重要的預測因子的系數縮小到趨近于 0,但永不達到 0。也就是說,最終的模型會包含所有的預測因子。但是,在 套索 中,如果將調整因子 λ 調整得足夠大,L1 范數懲罰可以迫使一些系數估計值完全等于 0。因此,套索 可以進行變量選擇,產生稀疏模型。
套索回歸發展歷史
套索是由斯坦福大學統計學教授Robert Tibshirani于1996年基于Leo Breiman的非負參數推斷(Nonnegative Garrote, NNG)提出。后者于其1995年的論文中發表。Robert Tibshirani最初使用套索來提高預測的準確性與回歸模型的可解釋性,他修改了模型擬合的過程,在協變量中只選擇一個子集應用到最終模型中,而非用上全部協變量。
在隨后的研究中不同的套索變體被創造出來。幾乎所有這些變體都集中于尊重或利用協變量之間的不同類型的依賴性。2005年,Hui Zou和Trevor Hastie提出通過彈性網(elastic net)來實現正則化和變量選擇。當預測變量的數量大于樣本大小時,彈性網絡正則化會增加額外的嶺回歸類懲罰,從而提高性能,允許方法一起選擇強相關變量,并提高整體預測精度。
2006年Ming Yuan和Yi Lin提對變量進行組合,即group 套索,允許選擇相關協變量組作為單個單元,主要針對某些情況下變量不單個出現而僅與其他變量一同出現。
2009年,Arnau Tibau Puig等人對group 套索進一步擴展,以在各個組(稀疏組套索)中執行變量選擇并允許組之間的重疊(重疊組套索)。
套索結合了上述的兩種方法,它通過強制讓回歸系數絕對值之和小于某固定值,即強制一些回歸系數變為0,有效地選擇了不包括這些回歸系數對應的協變量的更簡單的模型。這種方法和嶺回歸類似,在嶺回歸中,回歸系數平方和被強制小于某定值,不同點在于嶺回歸只改變系數的值,而不把任何值設為0。
套索回歸主要事件
年份 | 事件 | 相關論文/Reference |
1995 | Leo Breiman提出非負參數推斷 | Breiman, L.(1995).?Better Subset Regression Using the Nonnegative Garrote. Technometrics.?37 (4): 373–384. |
1996 | 斯坦福大學統計學教授Robert Tibshirani于1996年基于Leo Breiman的非負參數推斷(Nonnegative Garrote, NNG)提出套索 | Tibshirani, R. (1996). Regression Shrinkage and Selection via the 套索.?Journal of the Royal Statistical Society. Series B (methodological).?58 (1): 267–88. |
2005 | Hui Zou和Trevor Hastie提出通過彈性網(elastic net)來實現正則化和變量選擇 | Zou, H.; Hastie, T. (2005). Regularization and Variable Selection via the Elastic Net.?Journal of the Royal Statistical Society. Series B (statistical Methodology).?67 (2): 301–20. |
2006 | Ming Yuan和Yi Lin提對變量進行組合,即group 套索 | Yuan, M.; Lin, Y. (2006). Model Selection and Estimation in Regression with Grouped Variables.?Journal of the Royal Statistical Society. Series B (statistical Methodology).?68 (1): 49–67. |
2009 | Arnau Tibau Puig等人對group 套索進一步擴展,以在各個組(稀疏組套索)中執行變量選擇并允許組之間的重疊(重疊組套索) | Puig, A. T., Wiesel, A.; Hero, A. O. (2009). A Multidimensional Shrinkage-Thresholding Operator. Proceedings of the 15th workshop on Statistical Signal Processing, SSP’09, IEEE, pp. 113–116. |
套索回歸算法的原理及作用
套索回歸算法的原理
套索算法的核心思想是在最小二乘估計的基礎上,增加一個關于回歸系數的L1正則化項。這個正則化項的作用是對回歸系數進行懲罰,使得部分系數被壓縮至零,從而實現特征選擇。
具體來說,套索算法的優化目標可以表示為:
β_hat = argmin { ∑(y_i - β_0 - ∑x_ij * β_j)^2 + λ∑|β_j| }
其中,y_i表示觀測值,x_ij表示特征值,β_0表示截距項,β_j表示回歸系數,λ是正則化參數,用于控制正則化項的權重。
這個優化目標包含兩部分:前半部分是最小二乘估計的損失函數,用于衡量模型擬合數據的能力;后半部分是L1正則化項,用于對回歸系數進行懲罰。λ越大,懲罰力度越強,越多的回歸系數將被壓縮至零。
套索回歸算法的作用
在處理具有大量特征的數據集時,我們常常面臨兩個主要的挑戰:
- 特征之間可能存在多重共線性,這會導致模型參數估計不穩定甚至無法計算;
- 并非所有特征都對預測結果有顯著影響,一些無關或冗余的特征可能會干擾模型的預測性能。傳統的最小二乘法(Ordinary Least Squares, OLS)回歸在這樣的高維數據上往往會得到過擬合的模型,即模型在訓練集上表現良好但在新數據上泛化能力弱。
為了解決這些問題,統計學家和發展機器學習算法的研究人員提出了一系列的正則化技術,其中套索回歸(套索 Regression)就是一種被廣泛應用的方法。套索回歸通過在回歸模型中加入一個調節復雜度的懲罰項來克服上述問題。這個懲罰項是模型系數絕對值之和的λ倍,也就是所謂的L1范數,其中λ是一個非負的調節參數。
引入L1范數作為懲罰項有幾個關鍵的優勢:
- 稀疏性:L1范數有助于模型產生稀疏解,即推動某些系數減小至零。這一性質特別有用,因為它不僅降低了模型的復雜性,還實現了特征選擇的目的,即自動地識別出對響應變量有重要影響的變量。
- 可解釋性:通過減少特征的數量,模型變得更加容易解釋。這對于高維數據尤其重要,因為在高維情況下,找出重要的特征并理解每個特征如何影響預測結果是非常關鍵的。
- 計算效率:盡管套索回歸是一個復雜的優化問題,存在多種算法可以高效地求解,如坐標下降法、最小角回歸法等。
套索回歸算法的實現過程
- 數據準備:首先,收集并整理好用于回歸分析的數據集,包括觀測值、特征值等。
- 參數設置:選擇合適的正則化參數λ。這通常需要通過交叉驗證等方法來確定最優值。
- 優化求解:利用優化算法(如坐標下降法、最小角回歸等)求解上述優化目標,得到回歸系數的估計值。
- 特征選擇:根據回歸系數的估計值,將絕對值較小的系數置為零,從而實現特征選擇。這些被置為零的特征在后續建模中將不再考慮。
- 模型評估:利用測試數據集對得到的模型進行評估,包括擬合優度、預測誤差等指標。根據評估結果調整模型參數,以達到更好的性能。
套索回歸算法的代碼實現
from sklearn.linear_model import Lassolamb = 0.025lasso_reg = Lasso(alpha=lamb)lasso_reg.fit(X_poly_d, y)print(lasso_reg.intercept_, lasso_reg.coef_)print(L_theta_new(intercept=lasso_reg.intercept_,coef=lasso_reg.coef_.T,X=X_poly_d,y=y,lamb=lamb))X_plot = np.linspace(-3, 2, 1000).reshape(-1, 1)X_plot_poly = poly_features_d.fit_transform(X_plot)h = np.dot(X_plot_poly, lasso_reg.coef_.T) + lasso_reg.intercept_plt.plot(X_plot, h, 'r-')plt.plot(X, y, 'b.')plt.show()
套索回歸算法的應用場景
套索回歸可以用于特征選擇、解決多重共線性問題以及解釋模型結果等應用場景。例如,在醫療診斷領域,我們可以使用套索回歸來識別哪些疾病風險因素對預測結果具有最大的影響。在金融領域,我們可以使用套索回歸來尋找哪些因素對股票價格變化有最大的影響。
此外,套索回歸也可以與其他算法結合使用,例如隨機森林、支持向量機等。通過結合使用,我們可以充分利用套索回歸的特征選擇功能,同時獲得其他算法的優點,從而提高模型的性能。