◎倪子鑒
近年來,隨著互聯網金融的不斷發展,個人小微貸款不斷出現,對個人信貸的風險預測也越來越重要,風險控制已經成為當下熱點。而隨著互聯網信息產業的不斷完善,海量數據被沉淀了下來。運用大數據,自動化的分析與預測個人信貸風險不僅可以有效的提高預測的準確性,還能很好的節約審核成本。本文通過對5萬多用戶的小微貸款信息數據進行分析,提取其中有價值的信息,基于Xgboost建立信貸逾期預測模型,為實現自動化小微貸款審核提供理論支持。
隨著數據挖掘技術的不斷發展,許多各行各業的人士將數據挖掘技術應用于自身的領域。金融行業也不例外,隨著互聯網金融的發展,如今人們已經很少使用現金進行交易。而在貸款領域中,也逐漸開啟線上模式,進行互聯網化。而銀行與一些老牌的金融機構仍然在使用一些傳統的信用審核辦法。主要包括人工審核法與標準評分卡法。這兩種審核方式效率不高,且前期開發審核體系的時間過長。顯然在這個高速發展的互聯網時代,傳統銀行機構的人工審核模式與信用評級標準已經慢慢的無法適應新的快速的變化。
而對于新興的互聯網金融企業單日申請貸款的人數十分眾多,所以需要通過數據挖掘技術來快速、精準的對用戶進行風險評估。一方面,這有利于互聯網金融公司的業務開展,把控逾期風險,減少平臺暴雷事件發生。另一方面,也有助于加快貸款用戶的放款到賬時效,優化用戶體驗。
本文采用業界常用的數據挖掘技術Xgboost模型,結合用戶的各種行為記錄,為貸款用戶提供全面的信用評估。進而可以為互聯網金融的小微貸款逾期風險預測模型的建立提供參考,為風險控制自動化預測提供理論支持。
Xgboost(Extreme Gradient Boosting)模型是當下比較流行的機械學習算法。這種方法是提升樹的一種。提升樹在數據挖掘領域有著相當廣泛的應用,包括提升樹和梯度提升樹。其中提升樹模型采用加法模型與前向分步算法,同時基函數采用決策樹算法,對待分類問題采用二叉分類樹,對于回歸問題采用二叉回歸樹。提升樹模型可以看作是決策樹的加法模型:

其中T()表示決策樹,M為樹的個數,Θ表示決策樹的參數;
而對于梯度提升樹其學習流程與提升樹類似只是不再使用殘差作為新的訓練數據而是使用損失函數的梯度作為新的新的訓練數據的y值。提升樹模型每一次的提升都是靠上次的預測結果與訓練數據的label值差值作為新的訓練數據進行重新訓練,GDBT則是將殘差計算替換成了損失函數的梯度方向,將上一次的預測結果帶入梯度中求出本輪的訓練數據。
Xgboost則是在GDBT的基礎上,又進行了如下改進:
第一,GBDT將目標函數泰勒展開到一階,而Xgboost將目標函數泰勒展開到了二階。相比于GBDT的一階展開,二階展開保留了更多有關目標函數的信息,故對于模型能學習到更多信息,這就使得模型的整體穩定性與泛化能力大大提升。
第二,GBDT是給新的基模型尋找新的擬合標簽(前面加法模型的負梯度),而Xgboost是給新的基模型尋找新的目標函數(目標函數關于新的基模型的二階泰勒展開)。
第三,Xgboost加入了和葉子權重的L2正則化項,因而有利于模型獲得更低的方差。并且一定程度避免了過擬合現象。
第四,Xgboost增加了自動處理缺失值特征的策略。通過把帶缺失值樣本分別劃分到左子樹或者右子樹,比較兩種方案下目標函數的優劣,從而自動對有缺失值的樣本進行劃分,無需對缺失特征進行填充預處理。
本文使用的數據維度主要包括小微貸款用戶的基本個人信息、信用卡信息、用戶瀏覽行為信息與銀行流水信息。獲取的數據全部通過脫敏處理后,對數據集進行進一步的缺失值處理、特征預處理、特征篩選。
對于本數據集,原始數據共包括367個特征。我們首先剔除缺失值占比過大的特征,因為如果缺失值占比過大,該特征將無法有效的對結果進行解釋。然后我們將相關性過大的一組特征剔除一個,保留其中與因變量相關性更大,這樣有助于模型的準確。最后我們剔除特征方差過小接近于0的特征。因為特征方差過小說明該特征對于樣本的區分沒有實質性的幫助。最終模型包含278個特征,模型的建立與驗證都是基于這278個特征。

?
評價一個模型的好壞需要一定指標來進行評估度量。本文使用精確率、召回率、整體準確率、AUC與KS統計量來對模型進行評價。
精確率是表示預測是正例的所有結果中,預測正確的實例的占比。
召回率表示真實情況是正例,預測正確的實例的占比。
在理想的情況下,我們模型的精確率和召回率都應越高越好,但在實際情況中,這兩個指標往往是一對相互矛盾的度量。精確率偏低時,召回率往往偏高,精確率偏高時,召回率往往偏低。
整體準確率是針對整個模型,它表示在整個模型中,預測結果正確的情況占總體數據的比重。
AUC(Area Under Curve)被定義為ROC曲線下的面積。我們往往使用AUC值作為模型的評價標準是因為很多時候ROC曲線并不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應AUC更大的分類器效果更好。
KS(Kolmogorov-Smirnov)值衡量的是好壞樣本累計分部之間的差值。好壞樣本累計差異越大,KS指標越大,那么模型的風險區分能力越強。但是KS指標不能過大,如果KS值太高(一般認為大于0.7),則模型可能存在問題。
首先,我們采用對數據依然存在的缺失值不做填充處理。因為Xgboost算法對于缺失值的存在有很好的默認處理機制,該算法會自動幫助我們對缺失值進行處理,且比人工處理的效果一般要更優。然后我們對數據訓練集采用2:8的比例進行劃分,20%的訓練集數據做為驗證集,采用80%的訓練集數據對Xgboost模型進行訓練。用訓練好的模型驗證,得到驗證集的混淆矩陣如下表所示:

?
通過上表數據,我們可以計算出此模型的召回率為0.089,精確率為0.565,整體準確率為87.52%,即存在約12.5%的用戶會被預測錯誤。該模型的AUC值為0.784,KS值為0.45。通過這兩個指標我們不難看出,訓練出的模型預測效果較好,能較好的評估預測出用戶的逾期情況。但是召回率和精確率偏低,這種問題經分析有可能是正負樣本分布不均導致的,該數據集的正負樣本數為8.9:1。訓練集的AUC基本是在0.9以上的,而驗證集的AUC數值則在0.78左右,故此我們可以推斷,在訓練模型時模型出現了過擬合現象。于是我們將scale_pos_weight的值下調,從1.1調為0.9,控制正樣本權重,調節正負樣本不平衡問題。然后我們將模型的學習率由原來的0.03調為0.08。調整后驗證集的混淆矩陣如下表所見:

?
通過上表數據,我們可以計算出此模型的召回率為0.099,精確率為0.783,整體準確率為88.17%,即存在約12%的用戶會被預測錯誤。該模型的AUC為0.78,KS值為0.436,從這兩個指標可以看出,訓練出的模型效果是比較好的。調參后,精確率得到了提高,并且召回率也得到了提高,說明模型在一定程度上改善了過擬合與正負樣本分布不均問題。總之,我們可以看到Xgboost模型在預測小微貸款用戶逾期情況上,有較好的效果。
本文通過對5萬多條小微貸款用戶數據進行研究,對Xgboost模型在預測小微貸款用戶逾期風險情況的表現進行了測試與探討,得出了Xgboost模型能較為有效的用于小微貸款逾期風險預測的初步結論。個人認為可以對公司建立小微貸款逾期風險預測模型提供以下的建議:
從整個建模過程,我們不難看出,對數據的預處理與特征篩選,是整個建模過程的關鍵。哪些特征進入模型將極大的影響所建模型的精確程度。即使特征存在缺失值也不能輕易剔除,要盡可能把它作為一種特征來處理。對于模型的后期調整與優化,是提高模型精度的重要手段。這樣在使用Xgboost模型預測小微貸款用戶時,才能建立出更加精確的模型。