張承鈿,何浩龍*,許建龍
(1. 汕頭大學計算機系,廣東 汕頭 515000;2. 汕頭大學智能制造技術教育部重點實驗室,廣東 汕頭 515000)
傳統(tǒng)的以信用卡信息為基礎的個人信用評估方法已不能滿足銀行金融產業(yè)發(fā)展的需要,由于個人信用評估數據集存在非均衡性,數據集中信用良好的客戶遠遠大于信用較差的客戶,利用傳統(tǒng)的機器學習分類算法很難得到令人滿意的分類結果,因此個人信用分類問題的研究重點之一在于解決數據的非均衡性[1]。
國內外許多學者針對非均衡數據分類問題進行了大量的研究,并提出了各種解決方法。文獻[2]提出利用聚類算法對多數類樣本進行欠采樣抽取,獲取與少數類樣本數量相同的多數類樣本構成新的數據集。文獻[3]提出一種基于迭代提升欠采樣的集成學習方法,通過多次采樣并迭代不斷修正抽樣概率,最后從中選擇最好的分類器。彭敏等[4]提出一種基于SVM聚類的欠采樣方法,通過對多數類樣本進行層次的欠采樣,可以在不影響多數類樣本的基礎上提高少數類樣本的分類效果。Napierala K等[5]提出一種基于類標簽的方法,通過標注少數類樣本權重,最后提高分類準確率。以上這些研究表明,有效的非均衡數據處理方法可以提高分類的準確率。
在個人信用評估方面,已經有許多研究人員使用統(tǒng)計學、機器學習的方法來構建個人信用評估模型[6]。常用的機器學習方法有邏輯回歸(Logistic Regression,LR),支持向量機(Support Vector Machine,SVM),決策樹(Decision Trees,DT)等。
基于以上的分析,本文提出一種基于異構集成模型(Heterogeneous Ensemble Model,HEM)算法用來提高個人信用風險評估的準確率[7]。模型首先采用重復隨機欠采樣的方法將訓練集中的少數類樣本與等量多數類樣本劃分成多個訓練集,劃分后每個訓練集都是多數類和少數類別相等的數據集。接著將每個訓練集輸入到各個不同參數的XGBoost模型中進行訓練,利用XGBoost模型中生成的提升樹葉子結點得到新的特征向量。然后將新生成的特征和原來的訓練集合并生成新的訓練集,輸入到各個參數不同的LR模型中訓練生成不同的基分類器。接著輸入測試集,讓每個LR基分類器進行分類預測并對結果進行集成,最終得到該異構集成模型的預測結果。
個人信用評估數據集存在好壞客戶數據不均衡問題,由于數據集中的多數類樣本數量遠遠大于少數類樣本,導致在訓練時,分類結果往往偏向于多數類樣本而容易忽略少數類樣本,造成預測結果存在誤差[8]。解決數據不平衡問題的方法主要有過采樣、欠采樣和混合采樣。
EasyEnsemble采樣方法通過欠采樣抽取將數據集中的多數類樣本隨機劃分成與少數類樣本相等的若干個子集,每個子集分別與少數類合并生成新的數據子集。這樣使得每個數據子集都是類別均衡的數據集,并且集成后總的數據集信息量并沒有減少[9]。
首先確定數據集中少數類樣本總數t,采用欠采樣方法從總的訓練集D={(x1,y1),(x2,y2),…,(xm,ym)}中隨機采樣t個多數類樣本(采樣每個子集時使用不放回采樣),將這些少數類樣本和隨機采樣的多數類樣本組成多個新的訓練子集D1,D2,…,Dn。
每個訓練子集雖然都是由欠采樣抽樣生成的,但是總的數據集卻沒有丟失重要信息,因此可以采用這種方法解決數據不均衡問題[10]。
異構集成模型(HEM)算法是Bagging算法的一種擴展,其基本思想是通過對原始數據集多次抽樣,輸入不同參數在這些子集上訓練出不同的基分類器,最后融合這些基分類器,按簡單平均方法輸出分類結果。由于不同模型的基分類器之間存在一定的差異性,各自生成的分類決策邊界不同,因此,在基分類器融合后可以得到更加清晰地邊界。從模型的整體角度看,融合更加清晰地邊界有利于減少模型的分類錯誤,從而得到更好的預測結果。
XGBoost是由陳天奇博士提出的極端梯度提升樹類算法,它是在GDBT(Gradient Boosting)算法的基礎上提出的支持多線程并行計算模型,通過迭代和減少殘差的方向生成新的樹,組成一個準確率高的強學習器。
(1)
式(1)中,xi表示第i個特征向量,fk表示第k個子決策樹模型。為了學習到模型函數,模型引入的目標函數為
(2)
(3)
式(3)中,γ為樹懲罰正則項,具有前剪枝的作用,抑制結點向下的分裂;λ為葉子權重懲罰正則項,在計算分割點增益時可以起到平滑的作用;T為樹總的葉子結點個數;ωj為第j個葉子結點的權值。通過對式(2)目標函數L的二階泰勒公式展開,其中一階導數部分為
(4)
泰勒二階導數部分為
(5)
綜合以上分析,模型采用二階泰勒公式替換,帶入正則化懲罰項系數,得到XGBoost模型最終的目標函數為
(6)
式(6)中,Ij表示樹中第j個葉子結點的樣本集合,目標函數L值越小表示生成的樹結點越穩(wěn)定。在生成樹的類型確定后,利用貪心生成樹方法遍歷所有輸入特征的切分點,將樹結點分裂前后的目標函數值相減,其中相減后增益最大的結點是生成樹最佳的切分點,對應生成葉子結點特征為最佳特征。
原始訓練數據集經過欠采樣抽樣分組處理,分成多個訓練子集后,每個訓練子集為均衡訓練數據集。接下來利用XGBoost訓練得到新的數據特征,將訓練子集輸入到XGBoost模型中進行學習并且每個子集輸入不同的參數,得到k棵樹,每棵樹上有n1,n2,…,nk個葉子結點。每個預測樣本在每棵樹中都會落在一個葉子結點上面,那么以落在每棵樹上的葉子結點作為該樣本的特征值,就得到一個n1+n2+…+nk維的稀疏矩陣,其中有k個值為1,其余值為0。
經過XGBoost特征轉換后,再將得到這些新特征與之前原始特征進行融合,組成新的特征輸入到LR中進行訓練。在原有特征基礎上增加組合特征,通過擴展數據的維度用來間接提高模型的學習能力,在此基礎上建立的LR模型可以有效提高LR模型的預測準確率。
基于機器學習中的異構集成分析,提高傳統(tǒng)的XGBoost算法的泛化能力,本文提出一種異構集成模型(HEM),該模型結合集成算法思想和XGBoost低偏差特性,該流程如圖1所示。
圖1 HEM模型流程
該方法的包括四個部分,具體方法如下:
1)模型首先使用EasyEnsemble方法,將不均衡的個人信用數據集劃分成若干個樣本均衡的訓練子集;同時設置XGBoost模型的參數范圍,組合多份不同參數集用于訓練;
2)將處理后的訓練集中訓練多個XGBoost模型,在原始特征空間進行特征轉換,產生不同的新特征;
3)將XGBoost模型得到的分類結果作為新的特征,與原始特征進行融合,組成新的數據集輸入到LR1,LR2,…,LRm中進行學習。為減少融合過程中過擬合的風險,在第一層分類結果中加入了隨機噪聲,公式如下
XTi=X+Θ(Ti)
(7)
式(7)中X為原始特征向量,XTi為融合后的故障特征向量。Ti為子模型的預測結果;Θ(·)表示引入隨機噪聲。
4)最后輸入測試數據集對每個子模型得到的預測結果進行融合,按ωj,j∈[1,n],通過堆疊方式,構建綜合決策層,權值ωj的計算如式(8)所示。
(8)
式(8)中,η為常值,得到最終的預測結果。
為了驗證本文提出的異構集成模型算法的有效性,利用UCI數據庫中的德國個人信用數據集對模型進行實驗驗證。該數據集一共包含了1000個客戶的基本信息,其中包括了700個信用良好客戶與300個違約客戶,每一客戶的信息有20個特征,包括10個離散特征和10個連續(xù)特征。
該UCI數據集被廣泛用于評估個人信用模型的驗證中,具有可靠的參考性。
在本數據集中,由于存在年齡、信用卡額度和信用卡使用期限等不同的量綱,對比實驗中SVM是基于距離度量的分類方法,它對于數據之間的數量級別不同非常敏感,數據之間差別較大容易導致較大的分類結果誤差。為了消除這個影響,本實驗在進行模型訓練前使用均值方差標準化方法對年齡、信用卡額度和信用卡使用期數據進行標準化處理。
本實驗采用均值方差標準化方法處理,將原始數據的均值和標準差進行標準化處理,其轉換函數為
(9)
式(9)中,xmean是數據樣本的平均值,S是數據樣本之間的標準差。這樣標準化處理后的數據不一定在0-1之間,但是所有數據標準化后符合標準正態(tài)分布,這種方法可以有效防止出現(xiàn)極端數據值的情況,也使得本實驗更加規(guī)范。
評價分類器性能有很多指標,通常來說精確率越高,分類效果越好,但是在數據樣本分布不均衡的情況下,精確率越高并不一定意味著是一個性能好的模型。例如預測客戶信用好壞,由于信用良好的客戶遠遠大于信用違約客戶數量,在極大概率下都是信用好的客戶,所以隨便一個模型預測是信用好的客戶,它精確率都可以達到99%以上,因此使用精確率來評價一個算法模型的性能來說是不夠的。
本文使用AUC值來評價模型的性能。ROC(Receiver Operating Characteristic)曲線是以假正率為橫軸和真正率縱軸的曲線,AUC是ROC曲線下方的面積,一個好的分類模型的曲線應該盡可能靠近ROC曲線左上角。ROC曲線在數據不平衡條件下仍能很好展現(xiàn)模型實際情況,為了量化ROC的好壞,用ROC曲線與X軸圍成的面積即AUC值來判斷分類器性能。
首先為了驗證EasyEnsemble方法在處理非均衡數據時的有效性,實驗用原始數據集、SMOTE過采樣算法和EasyEnsemble欠采樣算法進行數據處理,分別用LR、DT、SVM、XGBoost和HEM的基分類器算法(XGBoost-LR)進行實驗對比分析。經過參數調優(yōu),本實驗中XGBoost模型的學習率為0.03,生成樹最大深度為7,特征采樣比例為0.8,模型迭代次數為100次。
表1 不同算法處理后基分類器AUC值
表1為使用不同不平衡數據算法處理后基分類器分類的AUC值。從實驗結果可以看出,訓練子集經過EasyEnsemble處理后的AUC值比原始數據集和SMOTE算法處理的AUC值分別提升約3%和2%,說明EasyEnasemble欠采樣方法處理后的數據對提升基分類器的分類準確率效果更好。
為了驗證本文提出的HEM算法模型的有效性,實驗以AUC為評價指標,并與當前常用的機器學習算法進行對比分析。經過參數調優(yōu),本實驗中HEM模型使用40個子模型,每個子模型中的XGBoost學習率擾動范圍為0.01~0.03,樹最大深度擾動為6~8,特征采樣比擾動為0.7~0.8,迭代次數擾動為100~200次。
實驗結果如表2所示,其中對比實驗的LR、DT、SVM和XGBoost集成模型包括了40個子模型,每個子模型輸入不同的數據子集和參數訓練,最后進行融合集成。表2中Fold1、Fold2、Fold3、Fold4、Fold5分別是各個集成模型進行五次交叉驗證的結果,其中Avg為這些結果的平均值。
表2 各集成分類算法AUC值
從表2可以看出,在5個評估模型中,本文提出的HEM和其它算法相比準確度均有不同程度的提高。其中,HEM模型的AUC平均值為0.916,分別高出LR、DT、SVM、XGBoost集成模型的10.9%、7.7%、12.5%、5.8%,平均值提高了7.38%。
為說明HEM模型在這次案例研究中的優(yōu)勢,該模型與其它常用算法在個人信用風險評估中的結果進行對比。將本算法與邏輯回歸(LR),決策樹(DT),支持向量機(SVM),XGBoost(XGB)等進行實驗對比,結果如圖2所示:
圖2 不同模型評估結果對比
從圖2的結果可以看出,在同樣的數據條件下,本文提出的HEM模型用來個人信用評估的結果好于其它傳統(tǒng)方法,同時比原始的XGBoost的效果更好。
在信用評分領域,經常使用的非參數檢驗——Kolmogorov-Smirnov檢驗法,其評價指標是K-S值,它用于檢驗輸入的不同特征對最終個人的信用風險結果的影響。K— S統(tǒng)計量測兩個分布之間的最大垂直距離,在評價二元分類模型的預測能力時,通常,K-S統(tǒng)計量越大,模型對正負樣本的判別能力就越強。
圖3 HEM模型K-S圖
對于正負樣本,圖3、圖4對比了兩種不同的輸入特征,對累計占比進行了模型預測。圖3中采用HEM模型評估的K-S最大值為0.687;圖4中采用LR模型評估的K-S最大值為0.489,低于HEM模型評估的K-S值0.198。
圖4 LR模型K-S圖
綜上可以得出,本文提出的HEM模型可以更好的區(qū)分好客戶和壞客戶,對于個人信用風險評估有明顯的提升作用。從另一個角度分析,對于刻畫個人信用畫像可以起到補充和完善的作用。
針對個人信用風險評估中出現(xiàn)的好壞客戶數量嚴重不均衡的數據特性,基于XGBoost構建新特征和集成學習的思想,提出一種異構集成模型算法。實驗通過對UCI德國信用數據集進行驗證,并將本文模型與目前常見的機器學習方法進行比較分析,結果證明本文提出的模型在個人信用評估應用上的有效性,這些提升對于銀行等金融行業(yè)來說將具有重要參考價值。