天天看點

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

作者:番茄風控大資料宣

正則化,一個熟悉而又陌生的概念,熟悉的是這個名稱在模組化場景中經常遇到,陌生的是隻知其然而不知是以然。當然,對于從事模組化的小夥伴來講,如果模型經驗尚未積累到一定程度,在相關模型場景能夠了解正則化的作用是可以滿足任務需求的,但是若進一步解釋參數的含義與邏輯,或者是進一步熟練用好正則化并發揮其更大價值,才是我們模型開發人員需要特别注意的。此外,即使是對于剛跨入資料模組化領域的童鞋,了解并熟悉正則化這個名稱小而作用大的概念,是工作中非常有必要了解的。本文将為大家總結下正則化的原理思想,同時重點介紹下正則化應用的具體場景及其實作效果。

1、正則化背景介紹

在正式描述正則化的概念之前,我們先來溫習下在python環境中通過機器學習庫sklearn庫調用邏輯回歸模型算法LogisticRegression的過程,具體如圖1所示,這是我們經常模組化的小夥伴來說是非常熟悉的場景。

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖1 邏輯回歸算法

從上圖邏輯回歸LogisticRegression的内置參數資訊可以看出,正則化(懲罰項)penalty='l2',說明在熟悉的機器學習sklearn庫中,應用廣泛的邏輯回歸模型是預設L2正則化處理的,從這裡這可以了解到,正則化對于邏輯回歸模型訓練拟合過程的特殊價值,參數預設值必然是非常有效的且重要的。

正則化(regularization),也可以稱為懲罰項(penalty),本質上是在模型的損失函數中附加了一個正則化項。具體方程表示如下所示:

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

其中,Loss表示損失函數,R為正則化項,λ為正則化系數。

一般情況下,正則化項是關于模型參數的1範數或2範數,也就是常見的L1正則化與L2正則化。在某些場景下,正則化的應用并不是單一的L1或L2,而是二者的有效結合,例如邏輯回歸模型的彈性網正則化項。此外,線上性回歸模型中,損失函數加上模型系數ω的L1正則化,便是我們比較熟悉的Lasso套索回歸;而加上模型系數ω的L2正則化,便是我們比較熟悉的Ridge嶺回歸。

對于線性回歸、邏輯回歸等廣義線性模型,引入正則化的作用可以概括為兩點,一是可以有效緩解模型過拟合的趨勢,二是可以使模型損失函數的求解過程更為高效,尤其是前者,是我們實際模組化中特别關注的内容,也是希望正則化解決的主要問題。接下來我們便結合具體資料樣例,采用邏輯回歸模型,來分析下模型引入L1、L2正則化項對模型拟合效果的優化程度。

2、樣本資料建構

為了有效說明L1正則化與L2正則化對線性模型過拟合的抑制作用,我們先來構造一個過拟合較明顯的線性回歸模型。樣本資料首先通過随機方式生成,初始值包含10條樣本1個特征x,取值範圍為0~1,目标變量y在其基礎上進一步随機生成,取值類型為連續型,可以滿足線性回歸的标簽需求;然後根據原始特征x來衍生加工新的特征變量池,這裡采用多項式方法來實作,具體是通過sklearn.preprocessing庫中的 PolynomialFeatures()函數來完成,以上構造執行個體樣本資料的過程如圖2所示。

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖2 樣本資料建構

通過以上方式得到的模組化樣本資料df_xs,具體分布如圖3所示,其中特征衍生的多項式自由度degree定義為10,取值越大則生成的新特征數量越多,可以結合場景需求自由配置。

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖3 執行個體樣本資料

根據以上樣本資料,我們來建構線性回歸模型LinearRegression,模型參數均取預設值,模型訓練拟合的特征資料為df_xs,目标資料為df_y。當模型訓練完成後,通過coef_輸出模型變量的權重系數,以了解各模型字段的貢獻情況。同時,為了評估模型的拟合效果,通過均方誤差(mean_squared_error,簡稱MSE)來評價模型性能,取值越小說明模型的拟合程度越好。此外,我們通過可視化圖表方式,将模型拟合曲線的分布效果在原始資料上進行展示。模型訓練、模型評估及其模型展示的具體過程如圖4所示,輸出的模型變量系數與模型評估名額MSE如圖5所示,模型曲線可視化效果如圖6所示。

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖4 線性回歸模型實作

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖5 線性回歸模型參數

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖6 線性回歸模型效果

由以上線性回歸模型的結果可知,模型的拟合效果很好,模型誤差名額MSE很小,僅有3.32316951848339e-24,從模型曲線也能展現出模型拟合是已達到很高程度的。但是,我們需要明确,模型效果的好壞不能單看模型的學習能力,雖然以上模型結果的誤差很小,但模型拟合曲線并不平滑,過分學習訓練樣本資料的資訊所緻,若此模型應用于新的測試資料,必然會表現出模型的泛化能力很弱,這樣的情況便是我們常遇到的模型過拟合現象。

針對模型過拟合情況,在實際業務場景中解決的方法也有很多,其中正則化是其中一種特别有效的方式,下面我們采用L1正則化與L2正則化來驗證下對模型過拟合抑制的實作效果。

3、L1正則化模型應用

前邊已有介紹,針對線性回歸模型,L1正則化可以通過Lasso套索回歸來實作,可以通過sklearn.linear_model庫直接來調用Lasso。同時,我們對正則化的懲罰系數設定為0.001。為了與L1正則化前的模型效果進行對比,我們采用上文線性回歸模型的分析步驟來同理實作,包括模型訓練、模型評估及其模型展示環節,具體過程如圖7所示,輸出的Lasso回歸模型的變量系數與評估名額MSE如圖8所示,模型曲線可視化效果如圖9所示。

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖7 Lasso回歸模型實作

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖8 Lasso回歸模型參數

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖9 Lasso與Lnr模型對比

通過圖7的Lasso回歸模型結果可知,模型名額MSE(0.0046)相比前邊Lnr模型的結果(3.3232e-24)明顯增大,說明L1正則化對原模型的過分拟合程度有顯著的抑制作用。同時,這個結論從圖8的Lasso模型拟合曲線也可以看出效果,Lasso模型函數的曲線分布相比原Lnr線性回歸模型更為平滑,這在模型測試中必然也會表現出相比L1正則化之前更好的泛化能力。

但是,我們從圖7的Lasso回歸模型的變量參數可以發現,很多變量的權重系數值都變為0,說明這些特征貢獻度很低,這也是L1正則化的特性,在模型拟合訓練過程中會較大程度保留對模型資訊貢獻度較高的變量,而且正則化的懲罰系數越大,模型特征數量在一定範圍内會逐漸減少。雖然這個過程有效發揮了對模型過拟合的抑制效果,但是對模型變量的聚合并沒有很好的作用,假設最後模型隻剩餘一個特征變量,顯然并不是實際業務所希望的。是以,針對L1正則化的應用,我們往往會将其應用到特征變量的篩選場景,畢竟其效果是比較好的。當然,本文通過執行個體重點是為了分析描述L1正則化對模型拟合程度的效果,而對于相關場景的應用可以圍繞此例進一步擴充與驗證。

4、L2正則化模型應用

對于線性回歸模型,L2正則化可以通過Ridge嶺回歸來實作,這裡同樣可以通過sklearn.linear_model庫來直接調用Ridge。這裡為了與前邊Lasso回歸進行對比,模型正則化的懲罰系數也設定為0.001,而且其他分析環節均保持一緻,具體過程如圖10所示,輸出的Ridge回歸模型的變量系數與評估名額MSE如圖11所示,模型曲線可視化效果如圖12所示。

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖10 Ridge回歸模型實作

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖11 Ridge回歸模型參數

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯

添加圖檔注釋,不超過 140 字(可選)

圖12 Ridge與Lnr模型對比

通過圖10的Ridge回歸模型結果可知,模型名額MSE(0.0023)相比前邊Lnr模型的結果(3.3232e-24)也明顯增大,說明L2正則化對原模型的過分拟合程度也有顯著的抑制作用。同時,這個結論從圖10的Ridge模型拟合曲線也可以看出效果,Ridge模型函數的曲線分布相比原Lnr線性回歸模型較為平滑,反映了模型的泛化能力相對更好。

同時,我們從圖11的Ridge回歸模型的變量參數可以很直覺了解到,L2正則化後的模型變量系數仍然保持均勻,并沒有像L1正則化結果那樣有很多變量系數歸0,這便是L2正則化的優勢,雖然在正則化相同懲罰系數的情況下,對模型過拟合的抑制程度沒有L1正則化那樣更強,但可以在有效降低模型過拟合程度的同時,還可以較好的保持各模型變量的有效性,至于特征資訊的貢獻度仍然可以通過權重系數值大小來判斷。是以,在采用正則化方法來緩解模型過拟合程度時,我們往往通過L2正則化的方式來實作。

在采用L2正則化來降低模型過拟合程度的場景下,若希望提高對模型的抑制效果,可以通過提高懲罰系數alpha來完成,在一定取值範圍内,能夠明顯提升正則化的效果,大家可以去嘗試,這裡暫不較長的描述,本文附帶代碼有相關分析過程。

綜合以上内容,我們從正則化的概念入手,詳細介紹了L1正則化與L2正則化在模型有效降低模型過拟合程度的實作效果,并對比描述了二者的特點性能與應用場景。為了便于大家對L1、L2正則化的進一步了解與熟悉,本文額外附帶了與以上内容同步的python代碼與樣本資料,供大家參考學習,詳情請移至知識星球檢視相關内容。

解決風控模型的過拟合與算法高效求解,來試試這種經典解決方法

編輯切換為居中

添加圖檔注釋,不超過 140 字(可選)

...

~原創文章

繼續閱讀