廖文雄,曾 碧,梁天愷,徐雅蕓,趙俊峰
廣東工業(yè)大學 計算機學院,廣州510006
隨著電子商務的不斷發(fā)展,基于互聯(lián)網(wǎng)平臺的消費信貸也迅速崛起,分期付款已經(jīng)成為吸引年輕人消費的一種必要手段[1]。2015年是互聯(lián)網(wǎng)金融發(fā)展的元年,國內(nèi)產(chǎn)業(yè)格局被互聯(lián)網(wǎng)產(chǎn)業(yè)逐漸改變,互聯(lián)網(wǎng)金融得到快速發(fā)展[2]。數(shù)據(jù)顯示,近年來中國消費信貸規(guī)模高速增長,2016年增速達32.2%,消費信貸規(guī)模達到25.0萬億元人民幣,2018年中國分期電商用戶有望增至1.7億人[3]。通過分期付款能夠加快商品的流通,為電商帶來更多的利潤;從長遠的角度來看,分期付款還可以培養(yǎng)用戶借貸消費的習慣,為企業(yè)帶來更大的消費交易量。
然而,高收益往往是和風險同時存在的,電商平臺想要永久生存必須謹慎經(jīng)營。一方面,由于我國征信體系不夠完備、互聯(lián)網(wǎng)金融平臺積累的歷史數(shù)據(jù)時間較短、覆蓋率不夠廣[4];另一方面,互聯(lián)網(wǎng)金融平臺助長了超前消費,使得部分用戶在分期付款時并未考慮到其欠款長期積累的金額,這對用戶和電商平臺都是一種災難[5]。本文提出一種可以對高維用戶信貸數(shù)據(jù)進行深入挖掘,并對用戶信貸風險進行有效評估的方法,可以為電商平臺規(guī)避風險提供參考。
信貸評估研究已經(jīng)有60多年歷史,從發(fā)展歷史來看,主要從最初的簡單線性模型到非線性模型,再到目前的集成學習。
2.1.1 線性模型
Orgler[6]于1970年對個人信用申請評分時創(chuàng)造性地使用了線性回歸模型。而Wiginto[7]于1980年首次通過Logistic模型對用戶信用進行評估。盡管線性模型在最初的信用評估中起了比較好的作用,但是由于線性模型在表達能力上的局限性,無法對數(shù)據(jù)集進行較好的擬合。
2.1.2 非線性模型
用戶信貸評估主要的非線性模型有支持向量機(Support Vector Machine,SVM)[8]和神經(jīng)網(wǎng)絡。Schebesch等[9]利用SVM,在同一個數(shù)據(jù)集中研究不同特征子集和不同核函數(shù)對用戶信用評估模型的性能優(yōu)化。Harris[10]使用集群支持向量機(Clustered SVM,CSVM)開發(fā)信用積分卡,與其他的SVM技術(shù)比較,CSVM在保證分類性能的同時,又保證了高效的計算。盡管支持向量機在處理非線性問題上表現(xiàn)優(yōu)秀,但是SVM是借助二次規(guī)劃來求解支持向量的,當樣本量很大時,計算時間會明顯增長,并且對缺失數(shù)據(jù)較為敏感[11]。Abdou等[12]于2008年對神經(jīng)網(wǎng)絡、判別分析、Logistic等傳統(tǒng)模型進行預測效果比較,結(jié)果表明,神經(jīng)網(wǎng)絡相對于其他模型能夠取得更高的正確率。雖然神經(jīng)網(wǎng)絡的方法能夠較好地處理非線性問題,但是算法需要大量的參數(shù),而且解釋能力差。
2.1.3 集成學習
以上的線性模型和非線性模型都是基于單一模型的,由于單一分類器的局限性,使得用戶信貸評估已經(jīng)遇到瓶頸,即單一分類器已經(jīng)無法很好地提升效果?,F(xiàn)在主流的思想是集成學習,即通過將多個單一的弱分類器集成為一個強大的分類器,這一過程被證實能有效提升模型的分類性能與泛化能力。Marques等[13]于2012年將多種分類模型應用于集成學習,實驗結(jié)果表明以C4.5決策樹為基分類器的集成模型取得最佳的效果,而以樸素貝葉斯作為基分類器的集成模型取得的效果最差。另外,Abellan等[14]于2017年以Bagging方案將不同的基學習器應用于信用評分,結(jié)果表明以決策樹作為基學習器的集成模型取得了最好的信用評分效果。
雖然集成學習能提升信貸預測性能,但是隨著現(xiàn)代信息量的不斷增長,信貸數(shù)據(jù)的特征維度也不斷提升,如何對高維度的信貸數(shù)據(jù)進行挖掘和風險評估是研究的一個難點。為解決此問題,國內(nèi)外學者利用特征工程對高維度的信貸數(shù)據(jù)進行特征提取,以降低信貸數(shù)據(jù)的維度和算法的計算代價,進一步提升信貸評估算法的性能。
特征工程是指從原始的數(shù)據(jù)集所包含的全部特征中選擇評估指標達到最優(yōu)的特征子集,使得該特征子集所構(gòu)造的分類或回歸模型達到與全部特征近似甚至更好的效果。根據(jù)特征選擇評估方法與后續(xù)的分類算法是否獨立,將特征選擇算法分為基于Filter的特征選擇算法、基于Wrapper的特征選擇算法、基于Embedded的特征選擇算法[15]。Filter思想中特征選擇與后續(xù)的分類算法是獨立的,先對每個特征進行統(tǒng)計學習計量,并且給每個特征進行評分,最后按照分數(shù)排序輸出。Wrapper思想中特征選擇與后續(xù)的分類算法相結(jié)合,需要訓練一個分類器,并且根據(jù)分類器的性能對特征子集進行評價,選擇若干特征或排除若干特性。Embedded思想將特征選擇直接嵌入到分類算法中,是Filter和Wrapper方法的結(jié)合,通過分類算法得到各個特征的權(quán)值系數(shù),根據(jù)系數(shù)從大到小選擇特征。Filter方法的評價標準與分類算法無關(guān),因此在分類性能上表現(xiàn)不佳;Wrapper方法的特征選擇會驗證所有的特征組合,因此計算速度會比Filter方法慢;Embedded方法具有Filter與Wrapper的優(yōu)點,將Filter和Wrapper分別運用于特征選擇中的不同階段[16]。
之前的信貸風險評價研究中,都是基于較低維度的數(shù)據(jù),而且沒有提出較為有效的數(shù)據(jù)降維方法。但是在面對高維數(shù)據(jù)時,如果不進行降維處理,容易發(fā)生維度災難,導致計算量急劇上升;再者大量的冗余或者無關(guān)屬性會掩蓋重要屬性,導致最終的分類性能難以提升。為解決上述問題,提高處理高維數(shù)據(jù)的能力,本文提出一種基于Embedded思想的XGBoost特征選擇方法XGBFS(XGBoost Feature Selection)。
面向高維數(shù)據(jù)的個人信貸風險評估方法主要包括以下過程:首先將訓練數(shù)據(jù)集進行數(shù)據(jù)清洗、缺失值處理和數(shù)據(jù)歸一化等預處理;再基于XGBFS對數(shù)據(jù)進行降維:最后通過XGBoost對降維后的數(shù)據(jù)進行用戶信貸評估建模。具體流程如圖1所示。
圖1 面向高維數(shù)據(jù)的個人信貸風險評估算法
現(xiàn)代信貸用戶信息中除了屬性高維外,還會存在多種類別的屬性,如離散型、連續(xù)型、文本型等。如何對各種類別的屬性進行科學的預處理是信貸風險評估的首要前提。針對不同類型的數(shù)據(jù)應當采取不同的處理方法:對于連續(xù)型屬性,直接進行歸一化處理。對于類別型屬性,先進行類別編碼,再進行歸一化處理。對于離散型屬性,先進行分段處理再進行歸一化處理。對于文本型屬性,先進行TF-IDF(Term Frequency-Inverse Document Frequency)提取特征,再通過LSA(Latent Semantic Analysis)[17]進行語義分析,將分析結(jié)果進行歸一化處理。數(shù)據(jù)預處理的流程如圖2所示。
圖2 數(shù)據(jù)預處理流程
3.1.1 類別型屬性
對于類別型屬性,先對各個類別進行編碼,再用編碼值取代原有值。
具體如下:對于存在n個類別的類別型屬性X,對于待處理的屬性值x則有:
3.1.2 離散型屬性
為了提升模型的穩(wěn)定性,降低過擬合風險,對于離散型屬性,先將離散值進行分段處理,再把各段的索引值作為該屬性的特征值取代原有的離散值。
具體如下:對于離散值屬性X,要分成n段,設屬性X的最大值為Xn,最小值為X0,則需指定參數(shù)X1~Xn-1,其中X0<X1<…<Xn。對于待處理的屬性值x,取t滿足Xt≤x<Xt+1為該值對應的索引值,并將其索引值t作為該屬性的值。
3.1.3 文本型屬性
用戶信息中含有較多的屬于文本類型的屬性,本文通過TF-IDF處理后再用LSA算法進行潛在語義分析,并且將分析結(jié)果作為該文本屬性的特征值。
TF-IDF是通過統(tǒng)計的方法衡量一個詞在語料庫的其中一份文件中的重要性。其中TF是某個詞語在該文檔中出現(xiàn)的頻率;IDF是某個詞語普遍重要性的度量,可由文檔總數(shù)除以包含該詞語的文檔數(shù)量,再對商取對數(shù)得到。
LSA的出發(fā)點是文檔中的各個詞之間存在著某種關(guān)系,并稱這種關(guān)系為潛在的語義結(jié)構(gòu)。由于語義結(jié)構(gòu)隱含在文檔的上下文使用模式中,可以通過對大量的文本進行統(tǒng)計計算,找到這種潛在的語義結(jié)構(gòu)。LSA就是通過統(tǒng)計方法,提取并量化這些潛在的語義結(jié)構(gòu),從而消除同義詞、多義詞的影響,提高文本表示的準確性[18]。而且LSA僅依賴于上下文中詞與詞的聯(lián)系,因此不需要確定的語義編碼,通過語義結(jié)構(gòu)來表示詞和文本,便可以達到消除詞之間的相關(guān)性、簡化文本的目的[19]。
目前典型的LSA空間的構(gòu)造方法是基于奇異值分解(Singular Value Decomposition,SVD)的空間構(gòu)造方法。如圖3所示,通過對文檔集的單詞-文檔矩陣的奇異值分解,可以提取出H個最大的奇異值和對應的左右奇異矩陣,并還原出和原來相似的單詞-文檔矩陣。
圖3 SVD對單詞-文檔進行分解的過程
3.1.4 缺失值處理
由于用戶的信貸信息屬性一般比較多,并且存在大量的缺失值。對于缺失值比例大于40%的屬性,本文采取刪除該屬性的方法。對于存在少量(缺失比例小于或等于40%)缺失值的屬性,本文采用眾數(shù)或者均值填充。
本文提出的XGBFS是基于XGBoost[20]特性的一種Embedded特征選擇方法。XGBoost是Boosting算法的一個實現(xiàn),是一種改進的GBDT(Gradient Boosting Decision Tree)算法。與傳統(tǒng)的GBDT算法比較,XGBoost對代價函數(shù)進行了二階泰勒展開,同時用到了一階導數(shù)和二階導數(shù),而傳統(tǒng)的GBDT算法只用了一階導數(shù);并且XGBoost代價函數(shù)中加入了正則項,用以控制模型復雜度,防止過擬合。
3.2.1 XGBoost原理
XGBoost集成模型可用以下式子表示:
其中,logistic為logistic函數(shù);x為待分類數(shù)據(jù)的屬性;K指的是子樹數(shù)量;f代表具體某棵子樹;F表示所有子樹。圖4為具有兩棵子樹f1、f2的F。
根據(jù)XGBoost算法思想,可將信貸風險評估模型的目標函數(shù)定為:
圖4 信貸風險評估模型
其中,yi表示樣本的真實標簽,表示模型的預測標簽,表示損失函數(shù),Ω(f)表示決策樹復雜度:
T為決策樹葉子節(jié)點的數(shù)量?!?w‖2為L2正則化。
XGBoost采用分步優(yōu)化目標函數(shù)的方法,求取目標函數(shù)的最優(yōu)值。首先優(yōu)化第一棵樹,再優(yōu)化第二棵樹,直至優(yōu)化完第K棵樹。訓練過程可用以下式子表示:
因此風險評估模型的目標函數(shù)可表示為:
其中,c是前t-1棵樹的復雜度。
根據(jù)二階泰勒展開公式:
令:
將式(4)、(7)、(8)代入式(6),可求得風險評估模型的目標函數(shù)為:
對式(9)求最小值,可得各葉子節(jié)點的最佳值:
對應的目標函數(shù)值為:
對于每棵決策樹,通常使用精確貪心算法來尋找最優(yōu)的樹結(jié)構(gòu)。
3.2.2 XGBFS原理
根據(jù)XGBoost原理可知,對訓練集數(shù)據(jù)進行建模后可得到含有K棵子樹的F,即fk∈F。通過統(tǒng)計各個屬性在F各子樹分裂節(jié)點出現(xiàn)的次數(shù)之和,便可得到各個屬性對XGBoost建模的重要性,最后根據(jù)重要性排名,選擇含有N個最重要屬性的屬性子集。具體算法流程如下所示。
算法1 XGBFS
輸入:含有M個屬性的訓練集TS。
輸出:含有N個屬性的最佳屬性子集。
1.通過XGBoost訓練分類器得到F
2.聲明一個含M個元素的0值數(shù)組m count
3.for f in F:
4. for node in f:
5. 根據(jù)node在m count對應位置+1
6. End for
7.End for
8.return m count前N個最大元素對應的屬性
本文驗證實驗的運行環(huán)境是一臺具有16 GB內(nèi)存且配有i7-7770HQ CPU的個人計算機,該計算機運行操作系統(tǒng)為Windows 10家庭中文版。本文的所有算法都采用Python語言編寫。
本實驗采用lending club公開的2016—2017年數(shù)據(jù)集,根據(jù)貸款狀態(tài)(loan_status)將Fully Paid標記為履約樣本(負樣本),將Charged Off標記為違約樣本(正樣本),其中負樣本記錄有249 462條,正樣本記錄有60 737條。除了還款狀態(tài)外,每條記錄還包含145個屬性。
將lending club數(shù)據(jù)加載后先進行數(shù)據(jù)清洗,把拖欠貸款后才會產(chǎn)生的屬性、嚴重缺失的屬性、無關(guān)的屬性去除。數(shù)據(jù)清洗后還剩下35個有效屬性,各屬性如表1所示。
由于信貸的數(shù)據(jù)存在正負樣本數(shù)量嚴重失衡的問題,本文采用的是負樣本自助欠采樣的方法,如表2所示,最終正負樣本的比例為1∶1。
本實驗實現(xiàn)了以下四種算法之間的比較:
表1 樣本屬性
表2 樣本分布
(1)CSFS_Logistic:基于Filter思想的卡方檢驗特征選擇方法(Chi Square Test Feature Selection,CSFS),并用Logistic作為分類算法;
(2)SVMFS_SVM:基于Embedded思想的支持向量機特征選擇方法(Support Vector Machine Feature Selection,SVMFS),并用SVM作為分類算法;
(3)RFFS_RF:基于Wrapper思想的隨機森林特征選擇方法(Random Forest Feature Selection,RFFS)[21],并用隨機森林(Random Forest,RF)[22]作為分類算法;
(4)XGBFS_XGBoost:本文的XGBFS并用XGBoost作為分類算法。
以上各算法將預處理后的信貸數(shù)據(jù)從35維降至10維,根據(jù)分類器的性能進行比較。
4.4.1 交叉驗證與評價指標
本實驗采用10折交叉驗證方法,并將recall、precision、F2、AUC(Area under Roc Curve)作為模型評價指標。
4.4.2 結(jié)果分析
從表3和圖5給出的本次實驗結(jié)果來看,CSFS_Logistic性能較差但耗時最短,SVMFS_SVM比CSFS_Logistic性能有所提升但是耗時特別長。RFFS_RF性能比CSFS_Logistic和SVMFS_SVM有很大的提升,并且與SVMFS_SVM相比耗時大幅度縮短。而XGBFS_XGBoost性能比RFFS_RF提升不少,但是耗時比RFFS_RF長。
表3 各算法性能對比
圖5 各算法性能對比
對比實驗中CSFS_Logistic性能較差的原因是,CSFS是基于Filter思想的特征選擇方法,與后續(xù)的Logistic分類算法獨立,而且Logistic只是線性的分類方法,表達能力有限,但是耗時最短。而SVMFS_SVM是借助二次規(guī)劃來求解支持向量,當樣本量很大時,SVMFS_SVM計算時間會明顯增長。相對于CSFS_Logistic和SVMFS_SVM,RFFS_RF是基于集成思想的算法,并且分類模型也是隨機森林,因此能比較大幅度地提升性能。XGBFS_XGBoost模型是基于Boosting集成算法,在訓練時各棵子樹是“串行”訓練的,因此耗時比RFFS_RF要長,但從其他性能指標來看,XGBFS_XGBoost比RFFS_RF性能要好。
從實驗結(jié)果可以看出,本文所提出的XBGFS與XGBoost相結(jié)合的面向高維數(shù)據(jù)的個人信貸風險評估方法,在處理高維數(shù)據(jù)時能夠進行有效的降維,選擇出有利于提升分類器性能的屬性,并且分類器的性能表現(xiàn)優(yōu)于其他算法。
本文提出了一種面向高維數(shù)據(jù)的個人信貸風險評估方法。本文方法包括從數(shù)據(jù)預處理、數(shù)據(jù)降維處理、信貸評估建模的一系列過程。通過對lending club公開的高維信貸數(shù)據(jù)集進行實驗,并與傳統(tǒng)的方法進行對比,證明了本文方法相對于傳統(tǒng)數(shù)據(jù)降維方法和信貸風險建模算法的優(yōu)越性,可以實現(xiàn)更高的召回率和穩(wěn)定性,能夠?qū)π刨J風險進行相對精準的評估。盡管本文在信貸數(shù)據(jù)降維中所用的XGBFS與XGBoost建模相結(jié)合的方法比傳統(tǒng)降維方法在性能上有所提升,但是所用到的XGBoost算法是基于“同質(zhì)”基學習器的集成算法,在未來的研究中,將探索“異質(zhì)”的基學習器組合,以選出更加合理的特征,從而進一步提升性能。