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