王朝輝,高保祿,劉 璇
(太原理工大學 軟件學院,山西 晉中 030600)
近年來,對信貸風險預測問題的研究集中采用集成學習的方法。有關研究表明:在信貸風險預測問題上,集成學習模型比單一的機器學習模型預測準確率更高且適用性更強。應用于信貸領域的集成算法主要有極端梯度提升[1-5](extreme gradient boosting,XGBoost)、LightGBM[6-8]和CatBoost[9]。由于XGBoost已經廣泛應用于信貸風險預測領域且效果較好。因此,本文將使用集成算法中的XGBoost算法作為基分類器。
鑒于XGBoost算法存在數10個超參數,不同超參數的取值對實驗準確率影響巨大。因此,本文將對強化學習中的Q學習(Quality-learning,Q-learning)算法進行改進,并使用改進后的方法對XGBoost中的超參數進行優化。通過在3個信貸數據集上的實驗對比可知,本文提出的模型具有更強的魯棒性。
對于一個機器學習任務來說,將所有的特征都參與分類,有可能會遇到維度災難或無關特征增加學習任務難度的問題。如果在構建模型之前選出重要特征,丟棄不相關特征和冗余特征,這將會使機器學習任務的難度降低,減輕機器學習的負擔。
隨機森林[10](random forest)算法是由Breiman在2001年首次提出的,它是以決策樹為基學習器、以并行式集成學習代表Bagging為基礎的集成學習模型。
隨機森林算法對特征進行重要性評估具體步驟如下。
假設隨機森林算法中有k棵決策樹,則特征attr的重要性可以由以下步驟得出。
(1)初始令k=1,采用Bootstrap重采樣技術生成訓練集,并生成決策樹Tk;
(2)基于Tk對袋外數據進行預測分類,準確率記作Errork;
(3)對袋外數據中特征attr的值加入噪聲干擾,得到新的袋外數據樣本集,再使用Tk對新袋外數據樣本集進行分類預測,統計分類正確的樣本數,記為Error′k;
(4)令k=2,3,4,…,K, 重復步驟(1)至步驟(3);
(5)特征attr的重要性由式(1)可得
(1)
由于隨機森林算法在特征重要性評估時受每棵決策樹的準確率影響較大,因此,本文提出基于后剪枝的隨機森林模型。該模型采用后剪枝策略對隨機森林算法中每棵決策樹進行剪枝操作。執行完成剪枝操作后再利用袋外數據對特征的重要性進行評估。該模型有效的原因在于,隨機森林算法的準確率可以分解為兩部分:基于所有決策樹的平均準確率和基于決策樹的多樣性帶來的準確率增益。由于不改變隨機抽樣和隨機特征選擇,通過后剪枝提高了基于每棵決策樹的平均性能,進而提升了隨機森林算法特征選擇的準確性。
XGBoost是集成算法中的一種代表算法,它的基礎是梯度提升算法。

(2)


(3)
將泰勒展開式使用到目標函數上,可得式(4)

(4)

(5)
(6)
我們將目標函數進一步化簡可得式(7)
(7)
這時,把每個樣本的損失函數的值相加,每個樣本都會落入一個葉子結點中,如果將同一個葉子節點樣本進行重新組合,目標函數就可以改寫成關于葉子節點分數的一個一元二次函數,直接使用頂點公式可得最優ωj和目標函數的值
(8)
其中,式(8)中的Hj和Gj分別為式(9)和式(10)
(9)
(10)
將這個公式帶入目標函數得式(11)
(11)
由于XGBoost算法在信貸預測方面的表現非常優異,具有很高的準確率和運行效率。本文將利用XGBoost構建信貸風險預測模型,使用改進Q-learning算法為其選擇超參數。
Q-learning[11-14]是最著名的強化學習的實現方法。它是典型的與模型無關的算法。它的基本原理是通過Agent不斷迭代學習,從而實現最優策略,獲得最大回報。
Q-learning算法在執行的時候首先需要建立一張Q值表,Q值表中的每一行代表不同的狀態,每一列代表不同狀態可采取的動作,表中每一個具體值的含義表示在當前狀態下采取該動作的期望回報。通過不間斷與環境進行交互,Q值表將會被迭代更新,選擇最優動作的概率會不斷增加。這將使得Agent執行的動作最終趨于最優動作集。Q值的迭代賦值公式如式(12)所示
Q(s,a)←Q(s,a)+∝[r(s,a,s′)+γmaxQ(s′,a′)-Q(s,a)]
(12)
其中,學習參數∝的取值范圍為0<∝<1, 時間折扣因子γ的取值范圍為0<γ<1。
經過大量實驗驗證,如果直接將Q-learning算法應用于優化XGBoost超參數,實驗效果不佳。原因在于在算法運行過程中,XGBoost生成準確率的時候才會產生獎勵值,這直接導致獎勵值很難影響到每次超參數選擇的過程中。因此,本文提出了一種改進的Q-learning算法優化XGBoost超參數。改進的Q-learning算法修改了Q值表的更新過程。該算法會將一回合結束時模型所得到的Q(s,a) 作為獎勵值,累加到每次超參數選擇的過程中。

(13)
將式(13)進一步化簡可得式(14)
Vπ(s)≤Qπ(s,π′(s))=
E[rt+1+Vπ(st+1|st=s,at=π′(st))]≤
E[rt+1+Qπ(st+1,π′(st+1)|st=s,at=π′(st))]≤
E[rt+1+rt+2+Qπ(st+2,π′(st+1)|…)…]≤Vπ′(s)
(14)
由式(14)可知,在每一次迭代后,總能找到一個π′(s), 使得Vπ(s)≤Vπ′(s)。 因此,本文所提出的改進的Q-learning算法是收斂的。
在改進的Q-learning算法中,Agent工作流程如下:針對于算法的每一次迭代,Agent會為算法模型選擇一組超參數λ; 然后在訓練數據集Dtrain上訓練算法模型Mλ; 最后將算法模型Mλ在測試數據集Dtest上的準確率作為獎勵值,利用改進的Q-learning算法,進行對Q值表的更新。經過多次訓練,Agent會以更高的概率選擇準確率高的超參數配置。
為了按照一定的順序選擇超參數,本文將Agent設計為自循環的結構。每次循環時,Agent將上一次的輸出作為Agent下一次的輸入,以保持超參數選擇和優化過程中的整體性。算法在一回合結束時得到的Q(s,a) 值會累加到這一回合所有更新的狀態-動作組上。以此全局優化方式來更新Q值表。
算法1給出了改進Q-learning算法的偽碼描述。
輸入: maximum number of Q-table modificationsmaxIter.
輸出: Q-tableQ(S,A).
Initialize Q-table;
iter←0;
While(True):
Given statest, take actionatibased onε-greedy;
Forito number of hyper-parameters;
Take out the hyper-parameters ofati;
If (All hyper-parameters have values):
Obtain rewardrtthrough accuracy of XGBoost;
Q(s,a)←Q(s,a)+∝[rt+γmaxQ(s′,a′)-Q(s,a)];
Forito number of hyper-parameters;
TheQ(s,a) is added toQ(sti,ati);
iter←iter+1;
Reach new statest+1;
If (iter≥maxIter):
Return Q-table;
本文提出的信貸風險預測模型具體流程可分為數據預處理、后剪枝的隨機森林算法進行特征選擇、改進的Q-learning對XGBoost超參數進行優化以及模型的訓練和預測。流程圖如圖1所示。本文模型實施步驟如下:

圖1 算法流程
步驟1 獲取信貸數據集,對數據集進行缺失值的填補和重復樣本的刪除。使用后剪枝的隨機森林算法對特征的重要性進行評估,取10次實驗的平均值作為特征最終的重要性,選擇重要性較高的特征。
步驟2 確定XGBoost中每一個超參數的取值范圍[nmin,nmax],然后將其劃分為M個子區間。
步驟3 以將要進行優化的超參數個數P作為改進的Q-learning中的狀態數,以超參數劃分的M個子空間作為改進的Q-learning中的動作數,建立Q值表。
步驟4 回合開始時,依次從每個狀態中選擇一個動作,Agent有1-a的概率隨機選擇動作,有a的概率選擇Q值最大的動作。
步驟5 將動作區間中取出的值進行記錄,直至每個超參數均有取值。
步驟6 將取值完成的超參數放入XGBoost中執行得到準確率。
步驟7 將算法在一回合結束時得到的Q(s,a) 值累加到這一回合所有更新的狀態-動作組上。
步驟8 記錄最大準確率下的最優超參數,判斷循環次數是否小于N,小于N則返回步驟3,否則跳出循環輸出違約概率。


表1 數據集描述
如果將GCD、ACA和CADS這3個數據集中的所有數據特征進行分類,可分為數值屬性(例如:信用額度)和標稱屬性(例如:現有支票帳戶的狀態)。由于3個數據集的數據特征屬性不一,本文對于數值屬性的缺失值通過該屬性未缺失值的平均值進行填充。對于標稱屬性的缺失值通過選擇該屬性未缺失值的眾數進行填充,之后再將填充完成后的標稱屬性轉化為二元屬性。
本文選取的3個數據集中均存在冗余特征與無關特征。使用后剪枝的隨機森林算法對3個數據集中的特征的重要性進行評估,取10次實驗的平均值作為特征最終的重要性,并將這3個數據集中特征的重要性分別進行排序,刪除重要性較低的特征。以GCD數據集為例,它的特征重要性排名見表2。

表2 特征重要性排序
表3展示的是GCD數據集選取指定數目的特征后XGBoost的準確率及訓練時間。分析表3可以得知,在確保模型準確率的前提下,選擇排名前23的特征時模型表現最好。相比較于默認XGBoost算法準確率提高了1.53%,運行時間降低了6.79%。由此驗證了后剪枝隨機森林算法進行特征選擇的有效性。

表3 特征數目與XGBoost表現
利用UCI上的3個信貸風險預測數據集,通過4種不同的方法對XGBoost的超參數優化,評估指標中的準確率和運行時間分別取10次實驗的平均值。
分析表4可得,基于網格搜索優化超參數在所有優化算法中用時最長且效果最差,原因在于網格搜索所使用的窮舉思想導致了它在較高維度中搜索最優超參數的時間復雜度很高,且網格搜索的性質決定了它只能在給定的候選集中進行超參數的選擇。基于貝葉斯算法優化超參數是被業界廣泛使用的優化算法,該算法能在運行時間較短的前提下得到復雜模型的局部最優解,但它在較高維度的搜索中往往表現不佳。基于蟻群算法優化超參數是基于仿生學原理的一種優化算法,該算法通過增加種群的多樣性來獲得較好全局最優解,但這直接導致了該算法尋優的時間過長。因此,本文提出的基于改進Q-learning優化XGBoost超參數相比于采用默認超參數的XGBoost、基于網格搜索算法優化XGBoost超參數、基于貝葉斯算法優化XGBoost超參數以及基于蟻群算法優化XGBoost超參數擁有更好的實驗效果,即具有更高的分類準確率和更短的運行時間。實驗結果表明,改進的Q-learning算法具有較強的尋優能力,彌補了其它優化算法運行時間長,優化效果差的缺點。

表4 數據集分類結果對比
ROC曲線又稱受試者工作特征曲線,它是根據機器學習的預測結果對樣本排序,依次將每個樣本劃分為正類,再計算出真正率和假正率。以假正率為橫軸、真正率為縱軸繪制的曲線即為ROC曲線。在ROC空間中,ROC曲線越靠近圖像的左上方表明分類器分類效果越好。ROC曲線下的面積為AUC值,AUC值介于0和1之間,AUC值越高則代表分類器模型的性能越好。尤其在正負樣本不均衡的場景下,AUC的取值更能反應出模型的穩定性。


圖2 GCD數據集ROC曲線圖像展示

圖3 ACA數據集ROC曲線圖像展示

圖4 CADS數據集ROC曲線圖像展示
本文算法與集成算法和深度學習在不同數據集上的性能對比結果見表5。其中,長短期記憶網絡[15](long-short term memory,LSTM)模型和門控循環單元[16,17](gated recurrent unit,GRU)模型均采用3層LSTM(GRU)層和一層全連接層進行搭建。實驗結果均取10次實驗的平均值。分析可得,相比較于諸如CatBoost和LightGBM集成學習算法,本文算法在準確率方面均有較大幅度的提升。相比較與深度學習算法,在GCD數據集上LSTM和GRU與本文算法準確率相近,但在ACA數據集上,LSTM和GRU的準確率相較于本文算法準確率分別降低了10.47%和10.19%,在CADS數據集上,LSTM和GRU的準確率相較于本文算法準確率分別降低了14.31%和13.02%。原因為在CADS和ACA數據集上,數據集較小導致用于訓練的樣本數過少,LSTM和GRU模型欠擬合使得準確率過低。因此,本文算法在數據量較少的條件下可以取代深度學習進行信貸風險預測。該實驗驗證將本文模型應用于信貸風險管理的優越性和可行性。

表5 不同算法性能對比
以GCD數據集為例,利用后剪枝隨機森林算法進行特征選擇和改進的Q-learning優化XGBoost超參數的實驗后,XGBoost的最佳超參數組合及其超參數解釋見表6。在最佳超參數組合下,實驗的準確率為82.48%,明顯優于表5中多種集成算法以及深度學習的準確率。

表6 GCD數據集下超參數展示
隨著個人信用貸款愈來愈普及,信貸評分的準確率對金融機構的綜治維穩至關重要。因此,本文提出了基于改進Q-learning算法優化XGBoost超參數的模型。
為了驗證所提出方法的有效性,本文選擇了3個信貸風險預測數據集,針對信貸數據集中存在冗余和無關特征的問題,本文提出利用后剪枝隨機森林算法進行特征選取。針對XGBoost算法超參數眾多的問題,本文提出利用改進的Q-learning對XGBoost算法的超參數進行優化。通過對比網格搜索算法、蟻群算法、貝葉斯算法3種具有代表性的超參數優化方法,發現本文提出的改進Q-learning算法更具有魯棒性。最后利用本文提出的模型對比其它集成學習模型和深度學習模型,發現本文提出的模型的準確率均優于對比算法。
未來還需要解決的問題有:①是否能將DQN模型或A3C模型用于超參數優化問題;②改進的Q-learning算法的時間復雜度是否可以進一步降低。