王朝輝,高保祿,劉 璇
(太原理工大學(xué) 軟件學(xué)院,山西 晉中 030600)
近年來(lái),對(duì)信貸風(fēng)險(xiǎn)預(yù)測(cè)問(wèn)題的研究集中采用集成學(xué)習(xí)的方法。有關(guān)研究表明:在信貸風(fēng)險(xiǎn)預(yù)測(cè)問(wèn)題上,集成學(xué)習(xí)模型比單一的機(jī)器學(xué)習(xí)模型預(yù)測(cè)準(zhǔn)確率更高且適用性更強(qiáng)。應(yīng)用于信貸領(lǐng)域的集成算法主要有極端梯度提升[1-5](extreme gradient boosting,XGBoost)、LightGBM[6-8]和CatBoost[9]。由于XGBoost已經(jīng)廣泛應(yīng)用于信貸風(fēng)險(xiǎn)預(yù)測(cè)領(lǐng)域且效果較好。因此,本文將使用集成算法中的XGBoost算法作為基分類(lèi)器。
鑒于XGBoost算法存在數(shù)10個(gè)超參數(shù),不同超參數(shù)的取值對(duì)實(shí)驗(yàn)準(zhǔn)確率影響巨大。因此,本文將對(duì)強(qiáng)化學(xué)習(xí)中的Q學(xué)習(xí)(Quality-learning,Q-learning)算法進(jìn)行改進(jìn),并使用改進(jìn)后的方法對(duì)XGBoost中的超參數(shù)進(jìn)行優(yōu)化。通過(guò)在3個(gè)信貸數(shù)據(jù)集上的實(shí)驗(yàn)對(duì)比可知,本文提出的模型具有更強(qiáng)的魯棒性。
對(duì)于一個(gè)機(jī)器學(xué)習(xí)任務(wù)來(lái)說(shuō),將所有的特征都參與分類(lèi),有可能會(huì)遇到維度災(zāi)難或無(wú)關(guān)特征增加學(xué)習(xí)任務(wù)難度的問(wèn)題。如果在構(gòu)建模型之前選出重要特征,丟棄不相關(guān)特征和冗余特征,這將會(huì)使機(jī)器學(xué)習(xí)任務(wù)的難度降低,減輕機(jī)器學(xué)習(xí)的負(fù)擔(dān)。
隨機(jī)森林[10](random forest)算法是由Breiman在2001年首次提出的,它是以決策樹(shù)為基學(xué)習(xí)器、以并行式集成學(xué)習(xí)代表Bagging為基礎(chǔ)的集成學(xué)習(xí)模型。
隨機(jī)森林算法對(duì)特征進(jìn)行重要性評(píng)估具體步驟如下。
假設(shè)隨機(jī)森林算法中有k棵決策樹(shù),則特征attr的重要性可以由以下步驟得出。
(1)初始令k=1,采用Bootstrap重采樣技術(shù)生成訓(xùn)練集,并生成決策樹(shù)Tk;
(2)基于Tk對(duì)袋外數(shù)據(jù)進(jìn)行預(yù)測(cè)分類(lèi),準(zhǔn)確率記作Errork;
(3)對(duì)袋外數(shù)據(jù)中特征attr的值加入噪聲干擾,得到新的袋外數(shù)據(jù)樣本集,再使用Tk對(duì)新袋外數(shù)據(jù)樣本集進(jìn)行分類(lèi)預(yù)測(cè),統(tǒng)計(jì)分類(lèi)正確的樣本數(shù),記為Error′k;
(4)令k=2,3,4,…,K, 重復(fù)步驟(1)至步驟(3);
(5)特征attr的重要性由式(1)可得
(1)
由于隨機(jī)森林算法在特征重要性評(píng)估時(shí)受每棵決策樹(shù)的準(zhǔn)確率影響較大,因此,本文提出基于后剪枝的隨機(jī)森林模型。該模型采用后剪枝策略對(duì)隨機(jī)森林算法中每棵決策樹(shù)進(jìn)行剪枝操作。執(zhí)行完成剪枝操作后再利用袋外數(shù)據(jù)對(duì)特征的重要性進(jìn)行評(píng)估。該模型有效的原因在于,隨機(jī)森林算法的準(zhǔn)確率可以分解為兩部分:基于所有決策樹(shù)的平均準(zhǔn)確率和基于決策樹(shù)的多樣性帶來(lái)的準(zhǔn)確率增益。由于不改變隨機(jī)抽樣和隨機(jī)特征選擇,通過(guò)后剪枝提高了基于每棵決策樹(shù)的平均性能,進(jìn)而提升了隨機(jī)森林算法特征選擇的準(zhǔn)確性。
XGBoost是集成算法中的一種代表算法,它的基礎(chǔ)是梯度提升算法。
(2)
(3)
將泰勒展開(kāi)式使用到目標(biāo)函數(shù)上,可得式(4)
(4)
(5)
(6)
我們將目標(biāo)函數(shù)進(jìn)一步化簡(jiǎn)可得式(7)
(7)
這時(shí),把每個(gè)樣本的損失函數(shù)的值相加,每個(gè)樣本都會(huì)落入一個(gè)葉子結(jié)點(diǎn)中,如果將同一個(gè)葉子節(jié)點(diǎn)樣本進(jìn)行重新組合,目標(biāo)函數(shù)就可以改寫(xiě)成關(guān)于葉子節(jié)點(diǎn)分?jǐn)?shù)的一個(gè)一元二次函數(shù),直接使用頂點(diǎn)公式可得最優(yōu)ωj和目標(biāo)函數(shù)的值
(8)
其中,式(8)中的Hj和Gj分別為式(9)和式(10)
(9)
(10)
將這個(gè)公式帶入目標(biāo)函數(shù)得式(11)
(11)
由于XGBoost算法在信貸預(yù)測(cè)方面的表現(xiàn)非常優(yōu)異,具有很高的準(zhǔn)確率和運(yùn)行效率。本文將利用XGBoost構(gòu)建信貸風(fēng)險(xiǎn)預(yù)測(cè)模型,使用改進(jìn)Q-learning算法為其選擇超參數(shù)。
Q-learning[11-14]是最著名的強(qiáng)化學(xué)習(xí)的實(shí)現(xiàn)方法。它是典型的與模型無(wú)關(guān)的算法。它的基本原理是通過(guò)Agent不斷迭代學(xué)習(xí),從而實(shí)現(xiàn)最優(yōu)策略,獲得最大回報(bào)。
Q-learning算法在執(zhí)行的時(shí)候首先需要建立一張Q值表,Q值表中的每一行代表不同的狀態(tài),每一列代表不同狀態(tài)可采取的動(dòng)作,表中每一個(gè)具體值的含義表示在當(dāng)前狀態(tài)下采取該動(dòng)作的期望回報(bào)。通過(guò)不間斷與環(huán)境進(jìn)行交互,Q值表將會(huì)被迭代更新,選擇最優(yōu)動(dòng)作的概率會(huì)不斷增加。這將使得Agent執(zhí)行的動(dòng)作最終趨于最優(yōu)動(dòng)作集。Q值的迭代賦值公式如式(12)所示
Q(s,a)←Q(s,a)+∝[r(s,a,s′)+γmaxQ(s′,a′)-Q(s,a)]
(12)
其中,學(xué)習(xí)參數(shù)∝的取值范圍為0<∝<1, 時(shí)間折扣因子γ的取值范圍為0<γ<1。
經(jīng)過(guò)大量實(shí)驗(yàn)驗(yàn)證,如果直接將Q-learning算法應(yīng)用于優(yōu)化XGBoost超參數(shù),實(shí)驗(yàn)效果不佳。原因在于在算法運(yùn)行過(guò)程中,XGBoost生成準(zhǔn)確率的時(shí)候才會(huì)產(chǎn)生獎(jiǎng)勵(lì)值,這直接導(dǎo)致獎(jiǎng)勵(lì)值很難影響到每次超參數(shù)選擇的過(guò)程中。因此,本文提出了一種改進(jìn)的Q-learning算法優(yōu)化XGBoost超參數(shù)。改進(jìn)的Q-learning算法修改了Q值表的更新過(guò)程。該算法會(huì)將一回合結(jié)束時(shí)模型所得到的Q(s,a) 作為獎(jiǎng)勵(lì)值,累加到每次超參數(shù)選擇的過(guò)程中。
(13)
將式(13)進(jìn)一步化簡(jiǎn)可得式(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)可知,在每一次迭代后,總能找到一個(gè)π′(s), 使得Vπ(s)≤Vπ′(s)。 因此,本文所提出的改進(jìn)的Q-learning算法是收斂的。
在改進(jìn)的Q-learning算法中,Agent工作流程如下:針對(duì)于算法的每一次迭代,Agent會(huì)為算法模型選擇一組超參數(shù)λ; 然后在訓(xùn)練數(shù)據(jù)集Dtrain上訓(xùn)練算法模型Mλ; 最后將算法模型Mλ在測(cè)試數(shù)據(jù)集Dtest上的準(zhǔn)確率作為獎(jiǎng)勵(lì)值,利用改進(jìn)的Q-learning算法,進(jìn)行對(duì)Q值表的更新。經(jīng)過(guò)多次訓(xùn)練,Agent會(huì)以更高的概率選擇準(zhǔn)確率高的超參數(shù)配置。
為了按照一定的順序選擇超參數(shù),本文將Agent設(shè)計(jì)為自循環(huán)的結(jié)構(gòu)。每次循環(huán)時(shí),Agent將上一次的輸出作為Agent下一次的輸入,以保持超參數(shù)選擇和優(yōu)化過(guò)程中的整體性。算法在一回合結(jié)束時(shí)得到的Q(s,a) 值會(huì)累加到這一回合所有更新的狀態(tài)-動(dòng)作組上。以此全局優(yōu)化方式來(lái)更新Q值表。
算法1給出了改進(jìn)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;
本文提出的信貸風(fēng)險(xiǎn)預(yù)測(cè)模型具體流程可分為數(shù)據(jù)預(yù)處理、后剪枝的隨機(jī)森林算法進(jìn)行特征選擇、改進(jìn)的Q-learning對(duì)XGBoost超參數(shù)進(jìn)行優(yōu)化以及模型的訓(xùn)練和預(yù)測(cè)。流程圖如圖1所示。本文模型實(shí)施步驟如下:
圖1 算法流程
步驟1 獲取信貸數(shù)據(jù)集,對(duì)數(shù)據(jù)集進(jìn)行缺失值的填補(bǔ)和重復(fù)樣本的刪除。使用后剪枝的隨機(jī)森林算法對(duì)特征的重要性進(jìn)行評(píng)估,取10次實(shí)驗(yàn)的平均值作為特征最終的重要性,選擇重要性較高的特征。
步驟2 確定XGBoost中每一個(gè)超參數(shù)的取值范圍[nmin,nmax],然后將其劃分為M個(gè)子區(qū)間。
步驟3 以將要進(jìn)行優(yōu)化的超參數(shù)個(gè)數(shù)P作為改進(jìn)的Q-learning中的狀態(tài)數(shù),以超參數(shù)劃分的M個(gè)子空間作為改進(jìn)的Q-learning中的動(dòng)作數(shù),建立Q值表。
步驟4 回合開(kāi)始時(shí),依次從每個(gè)狀態(tài)中選擇一個(gè)動(dòng)作,Agent有1-a的概率隨機(jī)選擇動(dòng)作,有a的概率選擇Q值最大的動(dòng)作。
步驟5 將動(dòng)作區(qū)間中取出的值進(jìn)行記錄,直至每個(gè)超參數(shù)均有取值。
步驟6 將取值完成的超參數(shù)放入XGBoost中執(zhí)行得到準(zhǔn)確率。
步驟7 將算法在一回合結(jié)束時(shí)得到的Q(s,a) 值累加到這一回合所有更新的狀態(tài)-動(dòng)作組上。
步驟8 記錄最大準(zhǔn)確率下的最優(yōu)超參數(shù),判斷循環(huán)次數(shù)是否小于N,小于N則返回步驟3,否則跳出循環(huán)輸出違約概率。
表1 數(shù)據(jù)集描述
如果將GCD、ACA和CADS這3個(gè)數(shù)據(jù)集中的所有數(shù)據(jù)特征進(jìn)行分類(lèi),可分為數(shù)值屬性(例如:信用額度)和標(biāo)稱(chēng)屬性(例如:現(xiàn)有支票帳戶(hù)的狀態(tài))。由于3個(gè)數(shù)據(jù)集的數(shù)據(jù)特征屬性不一,本文對(duì)于數(shù)值屬性的缺失值通過(guò)該屬性未缺失值的平均值進(jìn)行填充。對(duì)于標(biāo)稱(chēng)屬性的缺失值通過(guò)選擇該屬性未缺失值的眾數(shù)進(jìn)行填充,之后再將填充完成后的標(biāo)稱(chēng)屬性轉(zhuǎn)化為二元屬性。
本文選取的3個(gè)數(shù)據(jù)集中均存在冗余特征與無(wú)關(guān)特征。使用后剪枝的隨機(jī)森林算法對(duì)3個(gè)數(shù)據(jù)集中的特征的重要性進(jìn)行評(píng)估,取10次實(shí)驗(yàn)的平均值作為特征最終的重要性,并將這3個(gè)數(shù)據(jù)集中特征的重要性分別進(jìn)行排序,刪除重要性較低的特征。以GCD數(shù)據(jù)集為例,它的特征重要性排名見(jiàn)表2。
表2 特征重要性排序
表3展示的是GCD數(shù)據(jù)集選取指定數(shù)目的特征后XGBoost的準(zhǔn)確率及訓(xùn)練時(shí)間。分析表3可以得知,在確保模型準(zhǔn)確率的前提下,選擇排名前23的特征時(shí)模型表現(xiàn)最好。相比較于默認(rèn)XGBoost算法準(zhǔn)確率提高了1.53%,運(yùn)行時(shí)間降低了6.79%。由此驗(yàn)證了后剪枝隨機(jī)森林算法進(jìn)行特征選擇的有效性。
表3 特征數(shù)目與XGBoost表現(xiàn)
利用UCI上的3個(gè)信貸風(fēng)險(xiǎn)預(yù)測(cè)數(shù)據(jù)集,通過(guò)4種不同的方法對(duì)XGBoost的超參數(shù)優(yōu)化,評(píng)估指標(biāo)中的準(zhǔn)確率和運(yùn)行時(shí)間分別取10次實(shí)驗(yàn)的平均值。
分析表4可得,基于網(wǎng)格搜索優(yōu)化超參數(shù)在所有優(yōu)化算法中用時(shí)最長(zhǎng)且效果最差,原因在于網(wǎng)格搜索所使用的窮舉思想導(dǎo)致了它在較高維度中搜索最優(yōu)超參數(shù)的時(shí)間復(fù)雜度很高,且網(wǎng)格搜索的性質(zhì)決定了它只能在給定的候選集中進(jìn)行超參數(shù)的選擇?;谪惾~斯算法優(yōu)化超參數(shù)是被業(yè)界廣泛使用的優(yōu)化算法,該算法能在運(yùn)行時(shí)間較短的前提下得到復(fù)雜模型的局部最優(yōu)解,但它在較高維度的搜索中往往表現(xiàn)不佳。基于蟻群算法優(yōu)化超參數(shù)是基于仿生學(xué)原理的一種優(yōu)化算法,該算法通過(guò)增加種群的多樣性來(lái)獲得較好全局最優(yōu)解,但這直接導(dǎo)致了該算法尋優(yōu)的時(shí)間過(guò)長(zhǎng)。因此,本文提出的基于改進(jìn)Q-learning優(yōu)化XGBoost超參數(shù)相比于采用默認(rèn)超參數(shù)的XGBoost、基于網(wǎng)格搜索算法優(yōu)化XGBoost超參數(shù)、基于貝葉斯算法優(yōu)化XGBoost超參數(shù)以及基于蟻群算法優(yōu)化XGBoost超參數(shù)擁有更好的實(shí)驗(yàn)效果,即具有更高的分類(lèi)準(zhǔn)確率和更短的運(yùn)行時(shí)間。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的Q-learning算法具有較強(qiáng)的尋優(yōu)能力,彌補(bǔ)了其它優(yōu)化算法運(yùn)行時(shí)間長(zhǎng),優(yōu)化效果差的缺點(diǎn)。
表4 數(shù)據(jù)集分類(lèi)結(jié)果對(duì)比
ROC曲線又稱(chēng)受試者工作特征曲線,它是根據(jù)機(jī)器學(xué)習(xí)的預(yù)測(cè)結(jié)果對(duì)樣本排序,依次將每個(gè)樣本劃分為正類(lèi),再計(jì)算出真正率和假正率。以假正率為橫軸、真正率為縱軸繪制的曲線即為ROC曲線。在ROC空間中,ROC曲線越靠近圖像的左上方表明分類(lèi)器分類(lèi)效果越好。ROC曲線下的面積為AUC值,AUC值介于0和1之間,AUC值越高則代表分類(lèi)器模型的性能越好。尤其在正負(fù)樣本不均衡的場(chǎng)景下,AUC的取值更能反應(yīng)出模型的穩(wěn)定性。
圖2 GCD數(shù)據(jù)集ROC曲線圖像展示
圖3 ACA數(shù)據(jù)集ROC曲線圖像展示
圖4 CADS數(shù)據(jù)集ROC曲線圖像展示
本文算法與集成算法和深度學(xué)習(xí)在不同數(shù)據(jù)集上的性能對(duì)比結(jié)果見(jiàn)表5。其中,長(zhǎng)短期記憶網(wǎng)絡(luò)[15](long-short term memory,LSTM)模型和門(mén)控循環(huán)單元[16,17](gated recurrent unit,GRU)模型均采用3層LSTM(GRU)層和一層全連接層進(jìn)行搭建。實(shí)驗(yàn)結(jié)果均取10次實(shí)驗(yàn)的平均值。分析可得,相比較于諸如CatBoost和LightGBM集成學(xué)習(xí)算法,本文算法在準(zhǔn)確率方面均有較大幅度的提升。相比較與深度學(xué)習(xí)算法,在GCD數(shù)據(jù)集上LSTM和GRU與本文算法準(zhǔn)確率相近,但在ACA數(shù)據(jù)集上,LSTM和GRU的準(zhǔn)確率相較于本文算法準(zhǔn)確率分別降低了10.47%和10.19%,在CADS數(shù)據(jù)集上,LSTM和GRU的準(zhǔn)確率相較于本文算法準(zhǔn)確率分別降低了14.31%和13.02%。原因?yàn)樵贑ADS和ACA數(shù)據(jù)集上,數(shù)據(jù)集較小導(dǎo)致用于訓(xùn)練的樣本數(shù)過(guò)少,LSTM和GRU模型欠擬合使得準(zhǔn)確率過(guò)低。因此,本文算法在數(shù)據(jù)量較少的條件下可以取代深度學(xué)習(xí)進(jìn)行信貸風(fēng)險(xiǎn)預(yù)測(cè)。該實(shí)驗(yàn)驗(yàn)證將本文模型應(yīng)用于信貸風(fēng)險(xiǎn)管理的優(yōu)越性和可行性。
表5 不同算法性能對(duì)比
以GCD數(shù)據(jù)集為例,利用后剪枝隨機(jī)森林算法進(jìn)行特征選擇和改進(jìn)的Q-learning優(yōu)化XGBoost超參數(shù)的實(shí)驗(yàn)后,XGBoost的最佳超參數(shù)組合及其超參數(shù)解釋見(jiàn)表6。在最佳超參數(shù)組合下,實(shí)驗(yàn)的準(zhǔn)確率為82.48%,明顯優(yōu)于表5中多種集成算法以及深度學(xué)習(xí)的準(zhǔn)確率。
表6 GCD數(shù)據(jù)集下超參數(shù)展示
隨著個(gè)人信用貸款愈來(lái)愈普及,信貸評(píng)分的準(zhǔn)確率對(duì)金融機(jī)構(gòu)的綜治維穩(wěn)至關(guān)重要。因此,本文提出了基于改進(jìn)Q-learning算法優(yōu)化XGBoost超參數(shù)的模型。
為了驗(yàn)證所提出方法的有效性,本文選擇了3個(gè)信貸風(fēng)險(xiǎn)預(yù)測(cè)數(shù)據(jù)集,針對(duì)信貸數(shù)據(jù)集中存在冗余和無(wú)關(guān)特征的問(wèn)題,本文提出利用后剪枝隨機(jī)森林算法進(jìn)行特征選取。針對(duì)XGBoost算法超參數(shù)眾多的問(wèn)題,本文提出利用改進(jìn)的Q-learning對(duì)XGBoost算法的超參數(shù)進(jìn)行優(yōu)化。通過(guò)對(duì)比網(wǎng)格搜索算法、蟻群算法、貝葉斯算法3種具有代表性的超參數(shù)優(yōu)化方法,發(fā)現(xiàn)本文提出的改進(jìn)Q-learning算法更具有魯棒性。最后利用本文提出的模型對(duì)比其它集成學(xué)習(xí)模型和深度學(xué)習(xí)模型,發(fā)現(xiàn)本文提出的模型的準(zhǔn)確率均優(yōu)于對(duì)比算法。
未來(lái)還需要解決的問(wèn)題有:①是否能將DQN模型或A3C模型用于超參數(shù)優(yōu)化問(wèn)題;②改進(jìn)的Q-learning算法的時(shí)間復(fù)雜度是否可以進(jìn)一步降低。