呂 穎,邢進生
(山西師范大學 數學與計算機科學學院,山西 臨汾 041004)
隨著大數據時代的到來,互聯網金融得到了快速的發展,個人信用在金融領域越來越重要。銀行根據個人信用報告所記錄的內容,對個人信用進行評估,不僅有助于幫助客戶樹立正確的信用觀念,而且有利于提高銀行的授信效率,擴大消費信貸的發放[1]。
傳統的信用評估方法主要以BP(back propagation,BP)神經網絡、支持向量機(support vector machine,SVM)[2]、邏輯回歸(logistics regression,LR)[3]、決策樹(decision tree,DT)[4]等理論為基礎。Chen Jie等人[5]基于BP神經網絡,建立綠色供應鏈合作信用評價模型,從而更好地學習和評估不同層次的綠色供應鏈信用。姜鳳茹[6]利用支持向量機建立了個人信用評估模型,并引入遺傳算法進行參數優化,實驗證明遺傳算法-支持向量機(genetic algorithm-support vector machine,GA-SVM)模型有效解決了P2P(peer to peer lending,P2P)網貸平臺的個人信用評估問題。李太勇等人[7]充分利用稀疏貝葉斯學習(sparse Bayesian learning,SBL)的優勢,使得特征權重盡量稀疏,以此實現了個人信用評估和特征選擇。但隨著金融數據量的增加和數據不平衡問題的出現,這些傳統機器學習算法已不能更好地滿足市場模型評估的需求[8]。
近年來,隨著深度學習[9]相關理論以及信用評估方法[10]的深入發展,國內外眾多學者在數據處理及模型構建方面進行了相應研究,取得了良好的成績。趙雪峰等人[11]利用銀行個人信貸數據,構建了基于卷積神經網絡的信用貸款評估模型,提高了信用貸款模型的魯棒性。Shen Feng等人[12]提出了一種改進的合成少數類過采樣技術(synthetic minority oversampling technique,SMOTE)[13]用于不平衡數據處理,并將長短時記憶網絡(long short-term memory network,LSTM)和自適應提升(adaptive boosting,AdaBoost)算法整合到集成框架中,解決了不平衡信用風險評估問題。Jie Sun等人[14]提出一種基于SMOTE和引導聚集(bootstrap aggregating,Bagging)集成學習[15]算法,為不平衡的企業信用評估建立有效的決策樹集成模型。Lean Yu等人[16]提出一種基于深度信念網絡(deep belief nets,DBN)的重采樣支持向量機集成學習范例,以解決信用分類中的不平衡數據問題。在現有數據不均衡的條件下,分類器集成儼然成為信用評估建模的發展趨勢[17]。
鑒于目前個人信用評估方法的研究現狀,提出了基于SMOTE+ENN算法與集成學習的個人信用評估模型。該方法在解決樣本數據不均衡的基礎上,采用網格搜索[18]算法對多種分類器模型進行超參數優化,并利用集成學習技術把最優模型結果集成,從而構建出最優的個人信用評估模型。為了驗證算法的有效性,采用公開數據集Give Me Some Credit對該算法進行測試。與傳統單一分類器模型預測結果相比,該模型不僅良好地解決了數據不均衡的問題,而且提高了信用評估的精度。
SMOTE算法是一種合成少數類的過采樣技術,廣泛應用于處理數據不平衡的問題。其基本思想是基于對現有少數樣本的分析,人工生成額外少量樣本,并添加到原始數據集中,形成樣本數量均衡的新數據集,從而有效改善了樣本數據不均衡問題。SMOTE算法具體步驟如下:
(1)對于每個少數類中樣本xa,以歐氏距離為標準,找到該樣本最近的k個樣本。
(2)從k個近鄰樣本中隨機選擇一個樣本xb。
(3)在xa和xb兩個樣本點之間隨機插入一個新的樣本xc,合成新樣本的數學公式如式(1):
xc=xa+rand(0,1)×|xa-xb|
(1)
式中,rand(0,1)表示區間(0,1)內的任何一個數。
網格搜索通過遍歷所有超參數組合,尋找一組合適的超參數配置,從而達到優化模型的目的。假設總共有n個超參數,第n個超參數可以取mn個值,即總共的配置組合數量為m1×m2×…×mn。網格搜索根據這些超參數的不同組合分別訓練一個模型,通過循環遍歷進行測試,從中選擇一組性能最好的參數。網格搜索優化參數的基本原理如下:
(1)在初始狀態下,網格搜索法依據經驗先設置好待搜索的超參數區域,為防止關鍵參數被遺漏,設置較廣的待搜索超參數區域范圍。
(2)設置參數搜索步長,從起始點出發,沿著參數不同增長方向以單位步長運動,將所到區域以網格形式表示出來,網格中的交叉點就是所要搜索的參數。
(3)在搜索區域內選取網格的節點,通過交叉驗證,測試該參數下模型性能,選取表現最優的參數。
集成學習作為當前比較流行的機器學習算法之一,主要通過某種策略將多個弱監督模型集成,并利用群體決策來提高決策準確率,得到一個更好更全面的強監督模型。即便其中某個弱分類器預測錯誤,其他的弱分類器也可以及時糾正,從而獲得比個體學習器更好的泛化性能。集成學習首先構建一組個體學習器,然后通過某種結合策略將其集成構建成一個強學習器,如圖1所示。目前,集成學習常用的結合策略主要有以下幾類:

圖1 集成學習示意圖
1.3.1 平均法
對于數值輸出問題,平均法是最常用的集成學習結合策略。
(1)簡單算術平均的集成模型可由式(2)表達:
(2)
式中,f(x)為個體學習器預測結果,M為模型數量。
(2)加權算術平均的集成模型可由式(3)表達:
(3)

1.3.2 投票法
對于分類問題,最常用的集成學習策略就是投票法,投票法主要分為硬投票和軟投票兩種。
(1)硬投票。
根據少數服從多數的原則,選擇所有個體分類器中輸出最多的標簽作為最終預測結果,如圖2所示。

圖2 集成學習硬投票機制
(2)軟投票。
將預測結果為某一類別的所有分類器的預測概率平均,平均概率最高的類別為最終預測結果。
1.3.3 學習法
學習法的代表方法是Stacking,它是一種分層模型集成框架。首先采用原始數據集訓練出多個不同個體學習器,然后再用訓練好的個體學習器的輸出作為新訓練集的輸入,進而訓練出一個新模型,得到最終輸出結果。
GiveMe Some Credit數據集一共包含15萬條樣本數據,其中違約數據10 026條,占比6.68%,無違約數據139 974條,占比93.32%,樣本數據嚴重不平衡,因而需要進行樣本數據的平衡處理。但經典SMOTE算法隨機選取少數類樣本合成新樣本,忽略了周邊樣本情況,容易導致新合成的少數類樣本與周圍多數類樣本產生重疊,形成較多噪音。數據清洗技術ENN廣泛應用于重疊樣本數據的處理,因而可以將SMOTE算法與ENN結合起來形成一個pipeline,即先過采樣再進行數據清洗,以改善SMOTE算法處理數據的不足。該文采用SMOTE+ENN算法對少數類樣本進行合成處理,以提高分類器優化性能。
SMOTE+ENN算法主要是在SMOTE過采樣的基礎上,通過ENN算法清洗重疊數據,達到均衡樣本數據的目的。具體步驟如下:首先使用SMOTE算法生成新的少數類樣本,得到擴充數據集。然后對新數據集中的每一個樣本使用KNN(一般取K=5)方法進行預測,若預測結果和實際結果差異較大,則剔除該樣本。
選取給定數據集的75%作為訓練集,剩余數據集作為測試集,并使用訓練集分別建立邏輯回歸LR、K最近鄰(K-nearest neighbor,KNN)、決策樹DT、隨機森林分類器(random forest classifier,RFC)、引導聚集Bagging、隨機梯度下降(stochastic gradient descent,SGD)、極端梯度提升(extreme gradient boosting,XGB)和集成學習(由KNN、Bagging、和XGB模型集成)8種模型。LR是一種概率模型,通過使用Logistic函數將實數值映射到[0,1]之間,以逼近真實標記的對數概率;KNN通過計算樣本點與其近鄰的5個樣本數據距離,從而達到分類的目的;DT通過遞歸選擇最優特征對訓練數據進行分割,使得各子數據集達到一個最好分類。RFC是一種基于決策分類樹的Bagging集成學習方法,其輸出結果由包含的各決策樹輸出類別的眾數決定。Bagging方法通常是獨立并行學習多個弱學習器,并按照某種確定性的平均過程將它們組合。SGD每次隨機選擇一個樣本,不斷更新模型參數,從而使得目標函數達到極小值點。XGB是一種極限提升樹模型,將許多樹模型集成在一起,從而形成一個很強的分類。
該文采用基于投票法的集成學習結合策略進行預測分類,該方法主要是先并行學習幾個弱分類器,根據輸出預測結果從中選取3個最優個體分類器作為基分類器,并通過硬投票法將基分類器結果集成,輸出最終的預測結果。算法流程如圖3所示。

圖3 集成學習方法流程
(1)將Give Me Some Credit數據集S劃分為訓練集D(75%)和測試集T(25%)。
(2)將訓練集D按照五折交叉驗證的方法隨機均等劃分為D1、D2、D3、D4和D5五個子集,依次選取各子集Di(i=1,2,3,4,5)作為測試子集,剩下的4份作為訓練子集。
(3)網格搜索算法分別對LR、KNN、DT、RFC、Bagging、SGD、XGB模型自動交叉驗證、訓練,通過調節每一個模型超參數來跟蹤評分結果,獲取最優超參數。
(4)利用測試集T,對所有最優超參數的個體分類器模型進行預測,將預測結果AUC評分可視化,結果如圖4所示。

圖4 單一分類器可視化AUC評分結果
(5)根據AUC評分結果,選擇KNN、Bagging和XGB為基模型,并通過基于硬投票法的集成學習結合策略將基分類器結果集成新預測分類模型。用訓練集D重新訓練,測試集T驗證模型效果。
所有實驗運行環境均為:Windows 10操作系統,Intel(R) Xeon(R) W - 2123 CPU@ 3.6 GHz中央處理器,NVIDIA GeForce GTX1080顯卡,顯存大小為8 GB、Python 3.6版本、Anaconda 3.6集成開發環境。
實驗數據集來自Kaggle數據算法比賽中的Give Me Some Credit開源數據集,該數據集包含12個變量,15萬條的樣本數據。為了方便特征描述,將變量SeriousDlqin2yrs設置為Y,Y中的數據1表示違約,0表示沒有違約。其他特征變量按順序依次設置為X1~X10。Give Me Some Credit數據集相關特征變量信息如表1所示。

表1 個人信用特征及其對應解釋
實驗所采用的數據集是非結構化數據,因而包含多種噪聲,需要對數據進行預處理操作。實驗數據預處理主要包括缺失值處理、異常值處理、數據歸一化操作。
經統計分析發現,特征變量X5、X10存在數據缺失,變量X1、X2、X4、X5、X6、X8存在不同程度的數據異常。本次實驗為了處理噪聲數據的干擾,采用前一個非缺失值去填充該缺失值,并將異常值視為缺失值,按照缺失值處理方法來進行處理,以保證原數據的均值和標準差不發生大的改動。

(4)
式中,min(X)和max(X)分別是特征X在所有樣本上的最小值和最大值。
為了確保實驗有效進行,需要為每個分類器仔細設置超參數,如表2所示。網格搜索法作為一種自動參數尋優算法,根據給定模型自動進行交叉驗證,通過調節每一個參數跟蹤評分結果,由于其參數尋優性能的穩定可靠,被廣泛應用于多個領域。

表2 不同算法下網格搜索參數設置
為了衡量一個機器學習模型的好壞,通常采用準確率(Accuracy)、精確率(Precision)、召回率(Recall)和F值(F1-Score)對分類模型預測效果進行評估,各個指標的具體描述如公式(5)~公式(8)所示。
(5)
(6)
(7)
(8)
式中,TP表示預測正確的正樣本數量;FP表示預測錯誤的負樣本數量;FN表示預測錯誤的正樣本數量;TN表示預測正確的負樣本數量。
3.6.1 SMOTE+ENN算法數據不平衡處理
SMOTE+ENN算法通過選擇性地產出少數類樣本,生成了質量相對較高的新樣本集合,增強了分類算法性能。對比實驗結果如圖5所示。
從圖5可以看出,與經典SMOTE算法相比,SMOTE+ENN算法生成的新樣本中,離群點數目明顯減少,生成的新樣本分布更加均勻。SMOTE+undersampling作為欠采樣與過采樣結合的簡單算法,其生成的新樣本離群點數目較多,樣本數據存在欠擬合。與之相比,SMOTE+ENN算法生成的新樣本擬合度更高,樣本數據分布更佳。
經SMOTE、SMOTE+undersampling、SMOTE+ENN三種不同的數據不平衡算法處理,樣本數據結果如表3所示。

表3 不同算法下樣本數據的數量分布
SMOTE算法只是單純重復了違約樣本,會過分強調已有的違約樣本,如果部分樣本點標記錯誤或者是噪音,那么SMOTE算法處理后的數據錯誤也會被成倍放大,造成違約樣本過擬合。SMOTE+undersampling算法拋棄了大部分正常樣本數據,從而弱化了中間部分正常樣本的影響,但樣本數據的大量遺棄,可能會形成偏差很大的模型。SMOTE+ENN算法與SMOTE、SMOTE+undersampling兩種算法有著明顯的不同,不僅是單純地重復違約樣本,而且在局部區域通過KNN生成了新的違約樣本數據,降低了數據過擬合的風險。

圖5 SMOTE+ENN算法生成新樣本分布對比
3.6.2 實驗結果分析
針對SMOTE、SMOTE+undersamping、SMOTE+ENN三種不同的數據預處理算法,分別使用簡單5折交叉驗證、網格搜索和集成學習的算法預測模型分類準確率,具體實驗結果如表4~表7所示。

表4 不同算法下簡單交叉驗證的準確率

表5 不同算法下網格搜索優化模型的準確率

表6 不同算法下集成學習的準確率

表7 集成學習評估結果
從表4、表5的實驗結果可以看出,在兩種不同的信用評估方法下,SMOTE+ENN算法相較于SMOTE和SMOTE+undersamping兩種算法,個體分類器模型的預測準確率最高。在簡單交叉驗證的條件下,SMOTE+ENN算法預測分類準確率最高,但由于簡單交叉驗證無任何參數優化,且產生的訓練集數據分布和原始數據集有所不同,預測結果偏差較大,可信度低;網格搜索通過優化超參數,獲取最優個體分類器模型,SMOTE+ENN算法預測分類準確率相較于簡單交叉驗證雖有所降低,但可信度增加。
根據表4~表7的評估結果,可以看出在不同算法下,集成學習模型的準確率遠遠高于個體分類器模型。該文提出的SMOTE+ENN算法對數據不平衡處理后,相較于SMOTE和SMOTE+undersamping數據不平衡處理方法,無論是在個體分類器還是集成學習模型上,預測準確率均有大幅度提升。在基于網格搜索和集成學習的情況下,所提出的SMOTE+ENN算法能夠在一定程度上改善了SMOTE算法的不足,預測精度提升了2%,同時實驗結果表明集成學習模型相較于個體分類模型而言,預測效果更好。
首先介紹了常用的信用評估方法,在相關研究的基礎上,提出了一種應用于不平衡數據集樣本處理的算法,即SMOTE+ENN算法。通過設計多種分類器、超參數優化以及集成學習,實現最優評估模型的構建,從而完成對個人信用的評估。為了驗證該算法的可行性,針對SMOTE和SMOTE+undersamping兩種算法進行實驗對比分析,結果表明了基于SMOTE+ENN與集成學習方法的信用評估模型的穩健性。