呂 穎,邢進(jìn)生
(山西師范大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,山西 臨汾 041004)
隨著大數(shù)據(jù)時(shí)代的到來,互聯(lián)網(wǎng)金融得到了快速的發(fā)展,個(gè)人信用在金融領(lǐng)域越來越重要。銀行根據(jù)個(gè)人信用報(bào)告所記錄的內(nèi)容,對個(gè)人信用進(jìn)行評估,不僅有助于幫助客戶樹立正確的信用觀念,而且有利于提高銀行的授信效率,擴(kuò)大消費(fèi)信貸的發(fā)放[1]。
傳統(tǒng)的信用評估方法主要以BP(back propagation,BP)神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)(support vector machine,SVM)[2]、邏輯回歸(logistics regression,LR)[3]、決策樹(decision tree,DT)[4]等理論為基礎(chǔ)。Chen Jie等人[5]基于BP神經(jīng)網(wǎng)絡(luò),建立綠色供應(yīng)鏈合作信用評價(jià)模型,從而更好地學(xué)習(xí)和評估不同層次的綠色供應(yīng)鏈信用。姜鳳茹[6]利用支持向量機(jī)建立了個(gè)人信用評估模型,并引入遺傳算法進(jìn)行參數(shù)優(yōu)化,實(shí)驗(yàn)證明遺傳算法-支持向量機(jī)(genetic algorithm-support vector machine,GA-SVM)模型有效解決了P2P(peer to peer lending,P2P)網(wǎng)貸平臺(tái)的個(gè)人信用評估問題。李太勇等人[7]充分利用稀疏貝葉斯學(xué)習(xí)(sparse Bayesian learning,SBL)的優(yōu)勢,使得特征權(quán)重盡量稀疏,以此實(shí)現(xiàn)了個(gè)人信用評估和特征選擇。但隨著金融數(shù)據(jù)量的增加和數(shù)據(jù)不平衡問題的出現(xiàn),這些傳統(tǒng)機(jī)器學(xué)習(xí)算法已不能更好地滿足市場模型評估的需求[8]。
近年來,隨著深度學(xué)習(xí)[9]相關(guān)理論以及信用評估方法[10]的深入發(fā)展,國內(nèi)外眾多學(xué)者在數(shù)據(jù)處理及模型構(gòu)建方面進(jìn)行了相應(yīng)研究,取得了良好的成績。趙雪峰等人[11]利用銀行個(gè)人信貸數(shù)據(jù),構(gòu)建了基于卷積神經(jīng)網(wǎng)絡(luò)的信用貸款評估模型,提高了信用貸款模型的魯棒性。Shen Feng等人[12]提出了一種改進(jìn)的合成少數(shù)類過采樣技術(shù)(synthetic minority oversampling technique,SMOTE)[13]用于不平衡數(shù)據(jù)處理,并將長短時(shí)記憶網(wǎng)絡(luò)(long short-term memory network,LSTM)和自適應(yīng)提升(adaptive boosting,AdaBoost)算法整合到集成框架中,解決了不平衡信用風(fēng)險(xiǎn)評估問題。Jie Sun等人[14]提出一種基于SMOTE和引導(dǎo)聚集(bootstrap aggregating,Bagging)集成學(xué)習(xí)[15]算法,為不平衡的企業(yè)信用評估建立有效的決策樹集成模型。Lean Yu等人[16]提出一種基于深度信念網(wǎng)絡(luò)(deep belief nets,DBN)的重采樣支持向量機(jī)集成學(xué)習(xí)范例,以解決信用分類中的不平衡數(shù)據(jù)問題。在現(xiàn)有數(shù)據(jù)不均衡的條件下,分類器集成儼然成為信用評估建模的發(fā)展趨勢[17]。
鑒于目前個(gè)人信用評估方法的研究現(xiàn)狀,提出了基于SMOTE+ENN算法與集成學(xué)習(xí)的個(gè)人信用評估模型。該方法在解決樣本數(shù)據(jù)不均衡的基礎(chǔ)上,采用網(wǎng)格搜索[18]算法對多種分類器模型進(jìn)行超參數(shù)優(yōu)化,并利用集成學(xué)習(xí)技術(shù)把最優(yōu)模型結(jié)果集成,從而構(gòu)建出最優(yōu)的個(gè)人信用評估模型。為了驗(yàn)證算法的有效性,采用公開數(shù)據(jù)集Give Me Some Credit對該算法進(jìn)行測試。與傳統(tǒng)單一分類器模型預(yù)測結(jié)果相比,該模型不僅良好地解決了數(shù)據(jù)不均衡的問題,而且提高了信用評估的精度。
SMOTE算法是一種合成少數(shù)類的過采樣技術(shù),廣泛應(yīng)用于處理數(shù)據(jù)不平衡的問題。其基本思想是基于對現(xiàn)有少數(shù)樣本的分析,人工生成額外少量樣本,并添加到原始數(shù)據(jù)集中,形成樣本數(shù)量均衡的新數(shù)據(jù)集,從而有效改善了樣本數(shù)據(jù)不均衡問題。SMOTE算法具體步驟如下:
(1)對于每個(gè)少數(shù)類中樣本xa,以歐氏距離為標(biāo)準(zhǔn),找到該樣本最近的k個(gè)樣本。
(2)從k個(gè)近鄰樣本中隨機(jī)選擇一個(gè)樣本xb。
(3)在xa和xb兩個(gè)樣本點(diǎn)之間隨機(jī)插入一個(gè)新的樣本xc,合成新樣本的數(shù)學(xué)公式如式(1):
xc=xa+rand(0,1)×|xa-xb|
(1)
式中,rand(0,1)表示區(qū)間(0,1)內(nèi)的任何一個(gè)數(shù)。
網(wǎng)格搜索通過遍歷所有超參數(shù)組合,尋找一組合適的超參數(shù)配置,從而達(dá)到優(yōu)化模型的目的。假設(shè)總共有n個(gè)超參數(shù),第n個(gè)超參數(shù)可以取mn個(gè)值,即總共的配置組合數(shù)量為m1×m2×…×mn。網(wǎng)格搜索根據(jù)這些超參數(shù)的不同組合分別訓(xùn)練一個(gè)模型,通過循環(huán)遍歷進(jìn)行測試,從中選擇一組性能最好的參數(shù)。網(wǎng)格搜索優(yōu)化參數(shù)的基本原理如下:
(1)在初始狀態(tài)下,網(wǎng)格搜索法依據(jù)經(jīng)驗(yàn)先設(shè)置好待搜索的超參數(shù)區(qū)域,為防止關(guān)鍵參數(shù)被遺漏,設(shè)置較廣的待搜索超參數(shù)區(qū)域范圍。
(2)設(shè)置參數(shù)搜索步長,從起始點(diǎn)出發(fā),沿著參數(shù)不同增長方向以單位步長運(yùn)動(dòng),將所到區(qū)域以網(wǎng)格形式表示出來,網(wǎng)格中的交叉點(diǎn)就是所要搜索的參數(shù)。
(3)在搜索區(qū)域內(nèi)選取網(wǎng)格的節(jié)點(diǎn),通過交叉驗(yàn)證,測試該參數(shù)下模型性能,選取表現(xiàn)最優(yōu)的參數(shù)。
集成學(xué)習(xí)作為當(dāng)前比較流行的機(jī)器學(xué)習(xí)算法之一,主要通過某種策略將多個(gè)弱監(jiān)督模型集成,并利用群體決策來提高決策準(zhǔn)確率,得到一個(gè)更好更全面的強(qiáng)監(jiān)督模型。即便其中某個(gè)弱分類器預(yù)測錯(cuò)誤,其他的弱分類器也可以及時(shí)糾正,從而獲得比個(gè)體學(xué)習(xí)器更好的泛化性能。集成學(xué)習(xí)首先構(gòu)建一組個(gè)體學(xué)習(xí)器,然后通過某種結(jié)合策略將其集成構(gòu)建成一個(gè)強(qiáng)學(xué)習(xí)器,如圖1所示。目前,集成學(xué)習(xí)常用的結(jié)合策略主要有以下幾類:
圖1 集成學(xué)習(xí)示意圖
1.3.1 平均法
對于數(shù)值輸出問題,平均法是最常用的集成學(xué)習(xí)結(jié)合策略。
(1)簡單算術(shù)平均的集成模型可由式(2)表達(dá):
(2)
式中,f(x)為個(gè)體學(xué)習(xí)器預(yù)測結(jié)果,M為模型數(shù)量。
(2)加權(quán)算術(shù)平均的集成模型可由式(3)表達(dá):
(3)
1.3.2 投票法
對于分類問題,最常用的集成學(xué)習(xí)策略就是投票法,投票法主要分為硬投票和軟投票兩種。
(1)硬投票。
根據(jù)少數(shù)服從多數(shù)的原則,選擇所有個(gè)體分類器中輸出最多的標(biāo)簽作為最終預(yù)測結(jié)果,如圖2所示。
圖2 集成學(xué)習(xí)硬投票機(jī)制
(2)軟投票。
將預(yù)測結(jié)果為某一類別的所有分類器的預(yù)測概率平均,平均概率最高的類別為最終預(yù)測結(jié)果。
1.3.3 學(xué)習(xí)法
學(xué)習(xí)法的代表方法是Stacking,它是一種分層模型集成框架。首先采用原始數(shù)據(jù)集訓(xùn)練出多個(gè)不同個(gè)體學(xué)習(xí)器,然后再用訓(xùn)練好的個(gè)體學(xué)習(xí)器的輸出作為新訓(xùn)練集的輸入,進(jìn)而訓(xùn)練出一個(gè)新模型,得到最終輸出結(jié)果。
GiveMe Some Credit數(shù)據(jù)集一共包含15萬條樣本數(shù)據(jù),其中違約數(shù)據(jù)10 026條,占比6.68%,無違約數(shù)據(jù)139 974條,占比93.32%,樣本數(shù)據(jù)嚴(yán)重不平衡,因而需要進(jìn)行樣本數(shù)據(jù)的平衡處理。但經(jīng)典SMOTE算法隨機(jī)選取少數(shù)類樣本合成新樣本,忽略了周邊樣本情況,容易導(dǎo)致新合成的少數(shù)類樣本與周圍多數(shù)類樣本產(chǎn)生重疊,形成較多噪音。數(shù)據(jù)清洗技術(shù)ENN廣泛應(yīng)用于重疊樣本數(shù)據(jù)的處理,因而可以將SMOTE算法與ENN結(jié)合起來形成一個(gè)pipeline,即先過采樣再進(jìn)行數(shù)據(jù)清洗,以改善SMOTE算法處理數(shù)據(jù)的不足。該文采用SMOTE+ENN算法對少數(shù)類樣本進(jìn)行合成處理,以提高分類器優(yōu)化性能。
SMOTE+ENN算法主要是在SMOTE過采樣的基礎(chǔ)上,通過ENN算法清洗重疊數(shù)據(jù),達(dá)到均衡樣本數(shù)據(jù)的目的。具體步驟如下:首先使用SMOTE算法生成新的少數(shù)類樣本,得到擴(kuò)充數(shù)據(jù)集。然后對新數(shù)據(jù)集中的每一個(gè)樣本使用KNN(一般取K=5)方法進(jìn)行預(yù)測,若預(yù)測結(jié)果和實(shí)際結(jié)果差異較大,則剔除該樣本。
選取給定數(shù)據(jù)集的75%作為訓(xùn)練集,剩余數(shù)據(jù)集作為測試集,并使用訓(xùn)練集分別建立邏輯回歸LR、K最近鄰(K-nearest neighbor,KNN)、決策樹DT、隨機(jī)森林分類器(random forest classifier,RFC)、引導(dǎo)聚集Bagging、隨機(jī)梯度下降(stochastic gradient descent,SGD)、極端梯度提升(extreme gradient boosting,XGB)和集成學(xué)習(xí)(由KNN、Bagging、和XGB模型集成)8種模型。LR是一種概率模型,通過使用Logistic函數(shù)將實(shí)數(shù)值映射到[0,1]之間,以逼近真實(shí)標(biāo)記的對數(shù)概率;KNN通過計(jì)算樣本點(diǎn)與其近鄰的5個(gè)樣本數(shù)據(jù)距離,從而達(dá)到分類的目的;DT通過遞歸選擇最優(yōu)特征對訓(xùn)練數(shù)據(jù)進(jìn)行分割,使得各子數(shù)據(jù)集達(dá)到一個(gè)最好分類。RFC是一種基于決策分類樹的Bagging集成學(xué)習(xí)方法,其輸出結(jié)果由包含的各決策樹輸出類別的眾數(shù)決定。Bagging方法通常是獨(dú)立并行學(xué)習(xí)多個(gè)弱學(xué)習(xí)器,并按照某種確定性的平均過程將它們組合。SGD每次隨機(jī)選擇一個(gè)樣本,不斷更新模型參數(shù),從而使得目標(biāo)函數(shù)達(dá)到極小值點(diǎn)。XGB是一種極限提升樹模型,將許多樹模型集成在一起,從而形成一個(gè)很強(qiáng)的分類。
該文采用基于投票法的集成學(xué)習(xí)結(jié)合策略進(jìn)行預(yù)測分類,該方法主要是先并行學(xué)習(xí)幾個(gè)弱分類器,根據(jù)輸出預(yù)測結(jié)果從中選取3個(gè)最優(yōu)個(gè)體分類器作為基分類器,并通過硬投票法將基分類器結(jié)果集成,輸出最終的預(yù)測結(jié)果。算法流程如圖3所示。
圖3 集成學(xué)習(xí)方法流程
(1)將Give Me Some Credit數(shù)據(jù)集S劃分為訓(xùn)練集D(75%)和測試集T(25%)。
(2)將訓(xùn)練集D按照五折交叉驗(yàn)證的方法隨機(jī)均等劃分為D1、D2、D3、D4和D5五個(gè)子集,依次選取各子集Di(i=1,2,3,4,5)作為測試子集,剩下的4份作為訓(xùn)練子集。
(3)網(wǎng)格搜索算法分別對LR、KNN、DT、RFC、Bagging、SGD、XGB模型自動(dòng)交叉驗(yàn)證、訓(xùn)練,通過調(diào)節(jié)每一個(gè)模型超參數(shù)來跟蹤評分結(jié)果,獲取最優(yōu)超參數(shù)。
(4)利用測試集T,對所有最優(yōu)超參數(shù)的個(gè)體分類器模型進(jìn)行預(yù)測,將預(yù)測結(jié)果AUC評分可視化,結(jié)果如圖4所示。
圖4 單一分類器可視化AUC評分結(jié)果
(5)根據(jù)AUC評分結(jié)果,選擇KNN、Bagging和XGB為基模型,并通過基于硬投票法的集成學(xué)習(xí)結(jié)合策略將基分類器結(jié)果集成新預(yù)測分類模型。用訓(xùn)練集D重新訓(xùn)練,測試集T驗(yàn)證模型效果。
所有實(shí)驗(yàn)運(yùn)行環(huán)境均為:Windows 10操作系統(tǒng),Intel(R) Xeon(R) W - 2123 CPU@ 3.6 GHz中央處理器,NVIDIA GeForce GTX1080顯卡,顯存大小為8 GB、Python 3.6版本、Anaconda 3.6集成開發(fā)環(huán)境。
實(shí)驗(yàn)數(shù)據(jù)集來自Kaggle數(shù)據(jù)算法比賽中的Give Me Some Credit開源數(shù)據(jù)集,該數(shù)據(jù)集包含12個(gè)變量,15萬條的樣本數(shù)據(jù)。為了方便特征描述,將變量SeriousDlqin2yrs設(shè)置為Y,Y中的數(shù)據(jù)1表示違約,0表示沒有違約。其他特征變量按順序依次設(shè)置為X1~X10。Give Me Some Credit數(shù)據(jù)集相關(guān)特征變量信息如表1所示。
表1 個(gè)人信用特征及其對應(yīng)解釋
實(shí)驗(yàn)所采用的數(shù)據(jù)集是非結(jié)構(gòu)化數(shù)據(jù),因而包含多種噪聲,需要對數(shù)據(jù)進(jìn)行預(yù)處理操作。實(shí)驗(yàn)數(shù)據(jù)預(yù)處理主要包括缺失值處理、異常值處理、數(shù)據(jù)歸一化操作。
經(jīng)統(tǒng)計(jì)分析發(fā)現(xiàn),特征變量X5、X10存在數(shù)據(jù)缺失,變量X1、X2、X4、X5、X6、X8存在不同程度的數(shù)據(jù)異常。本次實(shí)驗(yàn)為了處理噪聲數(shù)據(jù)的干擾,采用前一個(gè)非缺失值去填充該缺失值,并將異常值視為缺失值,按照缺失值處理方法來進(jìn)行處理,以保證原數(shù)據(jù)的均值和標(biāo)準(zhǔn)差不發(fā)生大的改動(dòng)。
(4)
式中,min(X)和max(X)分別是特征X在所有樣本上的最小值和最大值。
為了確保實(shí)驗(yàn)有效進(jìn)行,需要為每個(gè)分類器仔細(xì)設(shè)置超參數(shù),如表2所示。網(wǎng)格搜索法作為一種自動(dòng)參數(shù)尋優(yōu)算法,根據(jù)給定模型自動(dòng)進(jìn)行交叉驗(yàn)證,通過調(diào)節(jié)每一個(gè)參數(shù)跟蹤評分結(jié)果,由于其參數(shù)尋優(yōu)性能的穩(wěn)定可靠,被廣泛應(yīng)用于多個(gè)領(lǐng)域。
表2 不同算法下網(wǎng)格搜索參數(shù)設(shè)置
為了衡量一個(gè)機(jī)器學(xué)習(xí)模型的好壞,通常采用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)和F值(F1-Score)對分類模型預(yù)測效果進(jìn)行評估,各個(gè)指標(biāo)的具體描述如公式(5)~公式(8)所示。
(5)
(6)
(7)
(8)
式中,TP表示預(yù)測正確的正樣本數(shù)量;FP表示預(yù)測錯(cuò)誤的負(fù)樣本數(shù)量;FN表示預(yù)測錯(cuò)誤的正樣本數(shù)量;TN表示預(yù)測正確的負(fù)樣本數(shù)量。
3.6.1 SMOTE+ENN算法數(shù)據(jù)不平衡處理
SMOTE+ENN算法通過選擇性地產(chǎn)出少數(shù)類樣本,生成了質(zhì)量相對較高的新樣本集合,增強(qiáng)了分類算法性能。對比實(shí)驗(yàn)結(jié)果如圖5所示。
從圖5可以看出,與經(jīng)典SMOTE算法相比,SMOTE+ENN算法生成的新樣本中,離群點(diǎn)數(shù)目明顯減少,生成的新樣本分布更加均勻。SMOTE+undersampling作為欠采樣與過采樣結(jié)合的簡單算法,其生成的新樣本離群點(diǎn)數(shù)目較多,樣本數(shù)據(jù)存在欠擬合。與之相比,SMOTE+ENN算法生成的新樣本擬合度更高,樣本數(shù)據(jù)分布更佳。
經(jīng)SMOTE、SMOTE+undersampling、SMOTE+ENN三種不同的數(shù)據(jù)不平衡算法處理,樣本數(shù)據(jù)結(jié)果如表3所示。
表3 不同算法下樣本數(shù)據(jù)的數(shù)量分布
SMOTE算法只是單純重復(fù)了違約樣本,會(huì)過分強(qiáng)調(diào)已有的違約樣本,如果部分樣本點(diǎn)標(biāo)記錯(cuò)誤或者是噪音,那么SMOTE算法處理后的數(shù)據(jù)錯(cuò)誤也會(huì)被成倍放大,造成違約樣本過擬合。SMOTE+undersampling算法拋棄了大部分正常樣本數(shù)據(jù),從而弱化了中間部分正常樣本的影響,但樣本數(shù)據(jù)的大量遺棄,可能會(huì)形成偏差很大的模型。SMOTE+ENN算法與SMOTE、SMOTE+undersampling兩種算法有著明顯的不同,不僅是單純地重復(fù)違約樣本,而且在局部區(qū)域通過KNN生成了新的違約樣本數(shù)據(jù),降低了數(shù)據(jù)過擬合的風(fēng)險(xiǎn)。
圖5 SMOTE+ENN算法生成新樣本分布對比
3.6.2 實(shí)驗(yàn)結(jié)果分析
針對SMOTE、SMOTE+undersamping、SMOTE+ENN三種不同的數(shù)據(jù)預(yù)處理算法,分別使用簡單5折交叉驗(yàn)證、網(wǎng)格搜索和集成學(xué)習(xí)的算法預(yù)測模型分類準(zhǔn)確率,具體實(shí)驗(yàn)結(jié)果如表4~表7所示。
表4 不同算法下簡單交叉驗(yàn)證的準(zhǔn)確率
表5 不同算法下網(wǎng)格搜索優(yōu)化模型的準(zhǔn)確率
表6 不同算法下集成學(xué)習(xí)的準(zhǔn)確率
表7 集成學(xué)習(xí)評估結(jié)果
從表4、表5的實(shí)驗(yàn)結(jié)果可以看出,在兩種不同的信用評估方法下,SMOTE+ENN算法相較于SMOTE和SMOTE+undersamping兩種算法,個(gè)體分類器模型的預(yù)測準(zhǔn)確率最高。在簡單交叉驗(yàn)證的條件下,SMOTE+ENN算法預(yù)測分類準(zhǔn)確率最高,但由于簡單交叉驗(yàn)證無任何參數(shù)優(yōu)化,且產(chǎn)生的訓(xùn)練集數(shù)據(jù)分布和原始數(shù)據(jù)集有所不同,預(yù)測結(jié)果偏差較大,可信度低;網(wǎng)格搜索通過優(yōu)化超參數(shù),獲取最優(yōu)個(gè)體分類器模型,SMOTE+ENN算法預(yù)測分類準(zhǔn)確率相較于簡單交叉驗(yàn)證雖有所降低,但可信度增加。
根據(jù)表4~表7的評估結(jié)果,可以看出在不同算法下,集成學(xué)習(xí)模型的準(zhǔn)確率遠(yuǎn)遠(yuǎn)高于個(gè)體分類器模型。該文提出的SMOTE+ENN算法對數(shù)據(jù)不平衡處理后,相較于SMOTE和SMOTE+undersamping數(shù)據(jù)不平衡處理方法,無論是在個(gè)體分類器還是集成學(xué)習(xí)模型上,預(yù)測準(zhǔn)確率均有大幅度提升。在基于網(wǎng)格搜索和集成學(xué)習(xí)的情況下,所提出的SMOTE+ENN算法能夠在一定程度上改善了SMOTE算法的不足,預(yù)測精度提升了2%,同時(shí)實(shí)驗(yàn)結(jié)果表明集成學(xué)習(xí)模型相較于個(gè)體分類模型而言,預(yù)測效果更好。
首先介紹了常用的信用評估方法,在相關(guān)研究的基礎(chǔ)上,提出了一種應(yīng)用于不平衡數(shù)據(jù)集樣本處理的算法,即SMOTE+ENN算法。通過設(shè)計(jì)多種分類器、超參數(shù)優(yōu)化以及集成學(xué)習(xí),實(shí)現(xiàn)最優(yōu)評估模型的構(gòu)建,從而完成對個(gè)人信用的評估。為了驗(yàn)證該算法的可行性,針對SMOTE和SMOTE+undersamping兩種算法進(jìn)行實(shí)驗(yàn)對比分析,結(jié)果表明了基于SMOTE+ENN與集成學(xué)習(xí)方法的信用評估模型的穩(wěn)健性。