黃天云,劉一平
(西南民族大學計算機科學與技術(shù)學院,四川 成都 610041)
目前,全國各類企業(yè)總數(shù)1500多萬,其中小微企業(yè)占比近80%,小微企業(yè)提供了約1.5億個就業(yè)崗位,創(chuàng)造了近60%的GDP[1].然而,小微企業(yè)狹窄的融資渠道、高昂的融資成本,極大的阻礙了其發(fā)展壯大.互聯(lián)網(wǎng)金融的發(fā)展,則為小微企業(yè)的融資提供了新的途徑[2].
近年來,大量文獻從金融政策及對策分析、實證研究、信用評估、信貸風險控制等方面對互聯(lián)網(wǎng)金融展開研究;研究對象包括商業(yè)銀行、個人信貸、P2P網(wǎng)貸、以及小微企業(yè)等;研究方法包括實證分析,如商業(yè)銀行系統(tǒng)性風險[3]、P2P網(wǎng)貸案例[4];統(tǒng)計分析和機器學習,如個人信用和信貸風險評估的Logistic回歸模型[5-6]、決策樹、支持向量機[7]、Bagging集成學習[8]、粒計算與信息融合[9]等.現(xiàn)有文獻對小微企業(yè)的互聯(lián)網(wǎng)金融信用評估和信貸風險控制的研究,以定性分析為主[1,10-11],定量分析的研究尚不多見[2].
以下對某銀行9萬例小微企業(yè)貸款申請數(shù)據(jù),首先應(yīng)用二類Logistic回歸得到信用評估初步模型,接著對數(shù)據(jù)內(nèi)在的高維特征進行深度挖掘,綜合Xgboost[12]、Large-Scale SVM[13].以及 Rank 加權(quán)求和,提出一種最佳融合方案—XSL模型,并調(diào)用flask[14]實現(xiàn)了一個小微企業(yè)的網(wǎng)貸在線申請與審核可視化系統(tǒng).
該銀行92420例小微企業(yè)貸款申請,審核通過46320例,拒絕46100例.將數(shù)據(jù)脫敏后整理成一張表,每行對應(yīng)一個申請者數(shù)據(jù),不同列為不同的維度信息,并按如下方法進行數(shù)據(jù)清洗.
數(shù)值型指標統(tǒng)一量綱:①啞變量:01變量,是或不是的指標.比如性別的男或女,是否為本行客戶等;②分類指標:用數(shù)字代替,比如教育程度,1初中及以下、2高中、3???、4本科、6碩士、7博士及以上;還有婚姻情況等.分類型變量也可以轉(zhuǎn)化成01啞變量,比如教育程度分為:是否為初中及以下、是否本科等;③文字型數(shù)據(jù):比如備注或說明等,若傾向于分類型的話,可以關(guān)鍵詞提取,并分類量化;④異常值剔除:通過作箱型圖進行剔除;⑤空缺值補全:原本空缺的、再加上被剔除的,可以用中位值或者平均值補全.
標準化:可能包括以下情形:①越偏向某一值越好:比如年齡,越靠近35越好,min=18,max=60,標準值D=35;②越大越好:比如開業(yè)年數(shù)、雇員數(shù)、月總利潤、月凈收入等;③越小越好:未還貸款總額、月還款總數(shù).
歸一化:用公式f(x)=1/(1+e-x)歸一化處理.
各指標的相關(guān)性分析如表1,與貸款通過與否相關(guān)性較高的是:之前貸款總額、婚姻情況、是否本行客戶、現(xiàn)每月還款額4個指標.
表1 各指標相關(guān)性分析Table 1 Correlation analysis of the metrics
分析各指標拒貸率直方圖,發(fā)現(xiàn)有以下單指標拒貸率規(guī)則:①之前貸款總額、月還款能力和現(xiàn)每月還款額的拒貸率分布較為均勻;②之前貸款余額大于800,000時,直接拒貸;③申請金額大于 1,000,000時,直接拒貸.
分析不同指標對貸款通過與否的影響,發(fā)現(xiàn)有以下拒貸規(guī)則:①之前貸款總額與申請通過成負相關(guān),之前貸款越多,拒貸率越高;②已婚且婚姻較穩(wěn)定的拒貸率較低;③之前是本行客戶的話,貸款成功率相對較高;④現(xiàn)每月還款額越多,拒貸率越高.
Logistic回歸模型是目前最成熟、應(yīng)用最廣泛的分類模型.因為申請通過與否是一個二類問題,因此采用二類Logistic回歸分析.首先將所有量化指標數(shù)據(jù)進行歸一化處理(數(shù)據(jù)歸一化),然后將所有樣本隨機分成5個folds,每個fold的前2/3加入到訓練樣本中,剩下的加入測試樣本(交叉驗證).運用SPSS軟件對訓練樣本進行Binary Logistic回歸分析,結(jié)果如表2.
表2 方程中的變量(一致性指標)Table 2 Variables in Equation(Consistent metrics)
B S.E, Wals df Sig. Exp(B)負債 1.352 1.396 .937 1 .333 3.864是否本行客戶 .714 .110 42.266 1 .000 2.042申請金額 -1.167 .996 1.374 1 .241 .311月還款能力 .509 2.400 .045 1 .832 1.663常量 -.081 .217 .138 1 .710 .922
表3 方程中的變量(全部可量化指標)Table 3 Variables in Equation(All quantitative metrics)
Credit=-1.166×婚姻情況+1.341×開業(yè)年數(shù)-12.0×貸款總數(shù)-10.984×月還款總數(shù)+0.714×是否為本行客戶. (1)
在訓練集上檢驗:當信用評分為正數(shù)時,通過率比負數(shù)時高的多,如圖1.
在測試集上測試:經(jīng)測試得到類似結(jié)果,并作ROC曲線如圖2.最終該模型的AUC=0.681,結(jié)果一般.
圖1 一致性指標下的不同信用評分通過率Fig.1 Pass rateof different credit score(Consistent metrics)
圖2 測試集的ROC曲線Fig.2 ROC curve with consistent metrics in test set
選用全部可量化的指標,如表3.得到回歸方程:
Credit=-1.417×年齡-0.078×性別-0.952×婚姻情況+1.321×開業(yè)年數(shù)+0.222×雇員數(shù)+0.476×總資產(chǎn)-9.167×貸款總數(shù)-19.350×月還款總數(shù)+0.706×負債+0.570×是否為本行客戶+-0.018×申請金額+4.809×月還款能力+0.405. (2)
結(jié)果檢驗 信用得分的申請通過率走勢如圖3;全部量化指標的ROC曲線見圖4,測試集上的AUC=0.835;結(jié)果檢驗見表4.
圖3 全部可量化指標下的不同信用評分通過率Fig.3 Pass rateof different credit score(All quantitative metrics)
圖4 全部量化指標的ROC曲線Fig.4 ROC curve with all quantitative metrics in test set
1)經(jīng)比對,最終選用全部可量化指標的信用模型,如公式(2),并記信用得分:Score=1000/(1+e-Credit);
2)經(jīng)計算,當信用Score<600時,平均通過率為38%;當信用Score>600時,平均通過率為89%;
3)初步認定,運用該模型,當Score>600時,建議通過;否則建議拒絕.
表4 檢驗結(jié)果變量:Var00007Table 4 Variables validation
1)特征表達
地理位置:根據(jù)樣本數(shù)據(jù)提供的地理位置信息,統(tǒng)計每個省份和城市的違約率,顏色越深代表違約率越高,如圖5.對最高違約率的地區(qū)(6個)構(gòu)建6維二值特征0或1(獨熱編碼-one-hot encoding),并保留其中有判別性的列.編碼結(jié)果還可以使用合并變量的方法,按城市等級如一線、二線來合并.
另外,也可將城市名用經(jīng)緯度替換,這樣就能將類別型變量轉(zhuǎn)化為數(shù)值型變量,如北京的經(jīng)緯度(39.92,116.46)可替換為兩個數(shù)值型特征.加入經(jīng)緯度后,線下交叉驗證能有千分位的提升.
成交時間特征:按日期統(tǒng)計訓練集中每天借貸的成交量,正負樣本分別統(tǒng)計,得到圖6,橫坐標是日期(20131101-20141109),縱坐標是每天的借貸量.綠色曲線(count0)對應(yīng)不違約樣本,藍色曲線(count1)是違約樣本每天的數(shù)量(為了對比明顯,將數(shù)量乘以2).
圖5 省份違約率可視化(左圖);突出省份違約率(右圖)Fig.5 Contract break rate of provinces(left)and those most prominent(right)
圖6 按日期借貸違約情況統(tǒng)計Fig.6 Loan break rate statistics of each day
類別特征:除了上述類別特征的特殊處理外,其他類別特征都做獨熱編碼.
組合特征:對判別性較高的數(shù)據(jù)特征進行整理合并,用這部分特征構(gòu)建組合特征.將特征兩兩相除,取其中線下交叉驗證值能達到0.73+的Top N個特征.
2)特征選擇和降維
以下采用基于模型的特征排序法,如Xgboost來做特征選擇[12].以降低特征維度.這樣做的好處在于:模型的學習過程和特征的選擇過程是同時進行的.Xgboost模型訓練完成后可以輸出特征的重要性,據(jù)此保留Top N個特征,從而達到特征選擇的目的.
基于前面構(gòu)建的特征,加上原始特征共有1439維.在這1439維特征上訓練Xgboost.經(jīng)計算,單模型交叉驗證值為0.7833(在下文中,稱此模型為xgb_7833).
1)xgb子模型bagging
受bagging思想的啟發(fā)[15],對單模型xgb_7833做了進一步改進.xgb_7833確定了一組不錯的參數(shù),讓這些參數(shù)在一定的小范圍內(nèi)隨機波動,同時對特征進行隨機抽樣,訓練多個xgb子模型進行bagging.例如,xgb_7833的參數(shù)取值為0.75,而各個xgb子模型的參數(shù)則在(0.7,0.8)之間隨機取值;各個xgb子模型的特征,則在xgb_7833的1439維特征上,隨機抽取部分進行訓練.這種方法在參數(shù)和特征上都引入了多樣性(差異性),使得最后bagging的效果有較大提升,交叉驗證值達0.787.模型框圖如圖7所示.
圖7 Xgb子模型baggingFig.7 30 xgb sub-models are trained and bagged
2)Large-Scale SVM
為了在保證準確率的同時,減少樣本訓練時間,也可用SVM進行訓練.SVM解決large-scale數(shù)據(jù)問題,一般采用工作集方法、訓練集分解方法,或增量學習方法等[13].
本方案共訓練30個svm,每個svm用到的訓練數(shù)據(jù)只是原始數(shù)據(jù)的一個子集,子集產(chǎn)生的方式基于Bootstrap抽樣,對30個svm的預(yù)測結(jié)果進行平均.經(jīng)計算,驗證集上的交叉驗證值為0.77.
1)模型融合方案
本框架主要實現(xiàn)2層的多模型融合,得到4個融合方案,如圖8.
圖8 模型融合總框架Fig.8 Main framework for model fusion:Xgb,SVM and LR
方案1 Bagged Xgboost:通過參數(shù)擾動生成30個不同的xgb子模型,對同一數(shù)據(jù)集進行訓練產(chǎn)生結(jié)果,采用均值融合產(chǎn)生M1結(jié)果;
方案2 Large-scale SVM:通過shuffle將數(shù)據(jù)集劃分為30子集,對30個svm的輸出取平均產(chǎn)生M2結(jié)果;
方案3 LR:采用LR對輸出特征進行權(quán)重訓練學習,克服手工選擇權(quán)重的問題,產(chǎn)生M3模型;
方案4 單模型:根據(jù)上面單模型交叉驗證,調(diào)試出2個不同版本的最優(yōu)單模型,S_XGB_1、S_XGB_2,即生成不同的單模型結(jié)果.
2)最佳融合方案—XSL模型
模型融合的關(guān)鍵在于模型差異性,框架中體現(xiàn)出的模型差異性主要在3個方面:不同模型、相同模型不同參數(shù)、不同訓練數(shù)據(jù)集.因此在每次融合之前需要參考各個模型的相關(guān)性,可采用Pearson相關(guān)系數(shù)進行評價.
最上層的融合方式可以采用均值融合、rank均值融合等簡單方式.最終選用的是效果最好的1/rank加權(quán)融合(按Score降序),并命名為XSL模型.經(jīng)計算,模型的交叉驗證值達到0.79,效果得到穩(wěn)定提高.
申請人年齡(<18)、負債率(>1)、還款能力系數(shù)( <0.6)、申請金額( >1,000,000)、信用得分 Score(<600)等,都是拒貸的前置條件.(負債率=總負債/總資產(chǎn);還款能力系數(shù)=(月凈收入-申請總額/申請期數(shù))/月凈收入).
由上述模型得到各項指標權(quán)重,并計算5個子模型得分:
1)個人信息得分=年齡×0.120929+性別×0.073707+婚姻×0.099202+教育 ×0.089850+居住狀況×0.185520+在成都居住年數(shù)×0.359399+是否本行客戶×0.071394.
2)生意信息得分=開業(yè)年數(shù)×0.527716+雇員數(shù)×0.209424+組織形式×0.182949+是否有營業(yè)執(zhí)照×0.079910.
3)財務(wù)情況得分=負債率×0.3580+月總利潤×0.1952+月凈收入×0.4468. (月總利潤=(月均銷售額×月均利潤)+月均其他收入;月凈收入=月總利潤-月均還款數(shù)).
4)貸款記錄得分=是否有逾期記錄×0.235012+是否還完銀行貸款×0.197620+未還貸款總額×0.235012+月平均還款×0.332357.
5)還款能力得分=還款能力系數(shù)×0.75+自我認知系數(shù)×0.25.(自我認知系數(shù)=申請月還款數(shù)/月凈收入).
總得分模型:應(yīng)用公式(2),并量化為最終得分Score.
Python加載flask來搭建web框架[14].實現(xiàn)網(wǎng)貸在線申請與審核系統(tǒng),并將審核結(jié)果可視化,如圖9.
圖9 小微企業(yè)網(wǎng)貸在線申請系統(tǒng)界面及審核結(jié)果可視化Fig.9 Online loan application and audit system for small enterprise:user interface and data visualization
對已有借貸企業(yè)信息各項指標的主觀定性描述、定量量化、分類匯總,本身還是有一定誤差的;而且由于申請人填寫的信息不規(guī)范、不完整,在迭代過程中會引入二次誤差,模型還有很大改進空間.
二類Logistic回歸分析得到的信用評估模型不夠精準,引入分類樹或神經(jīng)網(wǎng)絡(luò),效果會更明顯.其他的網(wǎng)絡(luò)信用數(shù)據(jù),如芝麻分或京東的信用分等也可加以參考,這樣能將壞賬率控制到更低水平.