孫鵬


【摘 要】近年來,消費金融飛速發展, 然而市場中的信貸違約風險也隨之增大。在這種情況下, 個人網絡消費信用保險應運而生。信用保險是以信用風險為標的的保險,保險公司根據不同的信用風險水平收取高低不同的保費,是符合市場規律的做法。違約概率PD是保費厘定公式中的一個重要因子,本文介紹了用XGBoost[1]算法構建違約概率PD預測模型的過程。XGBoost算法是一種高效準確的分類算法,通過本次實踐檢驗,XGBoost確實表現出了優越的性能。
【關鍵詞】信用保險;保費定價;XGBoost;信用風險
引言:
作為拉動經濟的三駕馬車之一,消費正在成為拉動我國經濟增長的火車頭,消費金融憑借“先享后付“的特點,對刺激消費有很大的作用。伴隨著互聯網和金融科技的飛速發展,消費金融在最近幾年也呈現了爆發式增長,然而,市場中的信貸違約風險也隨之增大。針對承接風險的市場需求,個人網絡消費信用保險應運而生。個人網絡消費信用保險是指在保險期間內,通過互聯網進行信用消費活動的用戶未能按照網絡消費合同約定的付款金額和期限完成付款義務,則由保險人按約定向被保險人支付該用戶網絡消費項下的應還全部欠款。投保人和被保險人是消費金融公司或者資金出借方,保險人就是保險公司。信用保險是以信用風險為標的的保險,保險公司根據不同的信用風險水平收取高低不同的保費,是符合市場規律的做法。違約概率PD是保費厘定公式中的一個重要因子,本文以某保險公司個人網絡消費信用保險產品的差異化定價項目為背景,介紹了筆者應用歷史數據和XGBoost算法,構建違約概率預測模型的過程。模型的應用將使每一份貸款申請都能得到自己的違約概率,從而得到自己的保費定價,最終實現保險產品的差異化定價。
eXtreme Gradient Boosting (XGBoost)是一種基于梯度Boosting 的集成學習算法,其原理是通過弱分類器的迭代計算實現準確的分類效果。梯度Boosting 因高效性和準確性被廣泛應用于分類和預測問題。本文將XGBoost 引入到信用風險量化的問題中。結果表明,與傳統機器學習算法相比,XGBoost具有速度快、準確度高等優勢。
一、數據描述
本文所使用的數據集來源于一家消費金融平臺,他們的產品是一個用戶和消費信貸企業之間的撮合平臺,用戶在此平臺上申請貸款,最后平臺會根據用戶的申請資料對接符合其條件的貸款機構,由貸款機構放款給用戶。貸款金額分三個檔次:2000元,4000元,6000元,還款期限為三個月,每月等額本息還款。
此數據集包含從2016年9月到2017年1月在此消費金融平臺申請貸款的共499971名用戶的多維度信用相關數據和一個完整的還款周期的表現數據。信用相關數據包括申請者的基本申請信息,歷史履約記錄,機構評分和行為日期等方面,這些數據在經過處理后將作為建立風控模型的自變量X。還款表現數據在根據違約定義進行處理后將作為建立風控模型的因變量Y。原始變量的具體字段匯總于表1。
二、數據預處理
數據預處理對數據挖掘是一個重要的問題,因為現實中的數據多半是不完整的、有噪聲和不一致的。數據預處理包括數據清理、數據集成、數據變換和數據規約[2]。
(一)數據清理
數據清理進行了以下操作:將年齡小于零的值替換為空值;歷史逾期次數和歷史逾期天數補零;用眾數填補離散變量,用中位數填補連續變量;將學歷中的代表”未知”的值0置換為10,以使學歷在數值上變為從“碩士以上”到“未知”的有序變量;將用戶評級A、B、C、D用數字1、2、3、4替代,使此變量從類別變量變為有序變量。
(二)數據變換
數據變換進行了以下操作:將籍貫和居住地中的省和市分開,省和市分別成為新字段;用申請時間減去合同開始時間,衍生出時間差變量,可以反映貸款人對貸款需求的緊急程度,記為APPSubCtrctStt;將申請時間轉化為上旬中旬和下旬,衍生出一個新變量;將合同開始時間轉化為上旬中旬和下旬,衍生出一個新變量;用歷史最大逾期天數除以借款次數,衍生出一個變量,記為hist_borrow_rate;用歷史最大逾期天數除以借款次數,衍生出一個變量,如果歷史借款次數是空值,給此變量付值0.05,用以區分復貸沒有逾期的客戶和首貸沒有逾期的客戶,記為hist_borrow_rate1;對類別變量: 性別,職業,收入類型,是否有社保,是否有房,是否有信用卡,申請月份上中下旬,合同開始時間上中下旬,居住城市水平(一二三四線),籍貫城市水平(一二三四線),居住省方位和籍貫省方位,進行one-hot編碼;對數值型變量:年齡,學歷,收入等級,社交分,基礎信息分,歷史行為分,通信行為分,量信分,好信分,芝麻粉,用戶評級,歷史借款次數,歷史最大逾期天數,合同金額,月利率,月服務費,還款總額,月還款額,本息和,APPSubCtrctStt,hist_borrow_rate,hist_borrow_rate1,進行min-max標準化;構造因變量Y:在我們的業務中,如果貸款人在3期還款中,只要有1期還款未在還款日三十天內完成全額還款,即算作逾期,此類客戶被定義為違約客戶,也就是因變量中的類別1。
在生成因變量Y后,統計違約客戶的總量,為53313個,占到總數據量的10.7%,遠少于好客戶的總量,所以建模數據屬于類別不平衡數據,需要在建模過程中進行處理。
(三)數據規約
數據規約進行了以下操作:將居住地城市和籍貫城市根據普遍的認知劃分為一二三四線;將居住地省和籍貫省根據中國地理區劃劃分為華東、華北、華中、華南、西北、西南、東北、未知;變量篩選:首先用樹模型(Extremely randomized trees[3],極端隨機樹)計算變量重要性,并將變量按照重要性排序。經計算,重要性排在前十位的變量為:芝麻分,量信分,基礎信息分,通信行為分,歷史行為分,社交分,用戶評級,合同開始日期和申請日期的相差天數,年齡,好信分, 如圖1所示。可見,第三方機構評分對預測客戶是否可能違約有較大貢獻,同時,衍生變量合同開始日期和申請日期的相差天數也起到了較好的作用,說明違約客戶更急于獲得貸款。之后,計算兩兩變量間的Pearson相關系數,如果一對變量的相關系數大于0.9, 說明此對變量共線性嚴重,則刪掉此對變量中重要性較低的那個變量。經計算,總還款額,本息和,hist_borrow_rate和合同金額這四個變量被刪除。
三、機器學習算法建模
(一)訓練集測試集劃分
以上全部數據被劃分為訓練集和測試集兩個集合,訓練集占比70%,測試集占比30%。在分裂時使用分層抽樣法使壞客戶數在訓練集和在測試集中的比例,與原數據集一致。
(二)XGBoost算法
提升Boosting方法是一種常用的統計學習方法。應用廣泛且有效。在分類問題中,它通過改變訓練樣本的權重,學習多個分類器,并將這些分類器進行線性組合,提高分類性能。
Gradient Boosting [4]是Boosting 的一個改進版本,它是為了解決對更一般的損失函數的優化問題而由Freidman提出的,它的每一次計算都是為了減少上一次的殘差,在殘差減小的梯度方向上建立模型,這與傳統的Boosting中關注正確錯誤的樣本加權有著很大的區別。其算法流程如下所示:
XGBoost的全稱是 eXtreme Gradient Boosting。它是 Gradient Boosting的一個 c++ 實現。XGBoost 最大的特點在于,它能夠自動利用 CPU 的多線程進行并行,同時在算法上對Gradient Boosting加以改進,從而提高了模型的精度和泛化能力。
(三)算法調參
為了使模型得到更好的效果,本次建模過程使用了網格搜索法和5折交叉驗證法對算法調參。算法參數最終確定為xgb(max_depth=6,n_estimators=280,booster='gbtree', n_jobs=4,scale_pos_weight=9,silent=0, random_state=2)。前文已經提到,建模數據中好客戶的數量遠遠大于壞客戶的數量,而分類器傾向于將測試樣本判入訓練樣本多的類別[5]。相對于審批通過更多的好客戶,我們更希望識別并拒絕更多的壞客戶,選項scale_pos_weight正是為解決這一問題而設定,此值可根據大類別與小類別的比值和判錯的代價而進行調節,此處被設置為9,為大類別與小類別的比值。
(四)其他分類方法
Logistic regression模型也是一種常用的解決分類問題的機器學習方法,且在風險評估領域有著30年以上[6]的應用歷史和廣泛的應用。Logistic regression模型在變量解釋性、穩定性等方面有著較大的優勢,是目前傳統金融機構對客戶進行信用風險分析時所采用的主要評估模型[7]。為了獲取最優的分類預測模型,我們也用同樣的數據建立了Logistic regression模型,并對兩種模型的預測效果進行了對比。
(五)評價標準
對于違約概率的問題,我們不但關注全部樣本的預測準確率(Accuracy),而且還更關注對于陽性樣本,即違約客戶的預測是否準確,因此采用準確率和陽性樣本預測的準召回率(recall)作為模型評價指標:
其中,P為陽性樣本總數,N為陰性樣本總數。Tp為正確預測的陽性樣本數量,Tn為正確預測的陰性樣本數量。AUC和K-S統計量[8]也是分類模型評價指標,對于一個預測效果優于隨機猜測的二分類模型來說,它的AUC值應該在0.5到1之間,而且越接近1效果越好。K-S統計量是衡量模型區分好壞客戶能力的指標,如果數值在0.41~0.5之間,則認為模型具有中等的區分能力。
四、結果與討論
(一)結果比較
在XGBoost的樹模型和logistic regression模型建立完成后,采用測試集樣本對建模結果進行預測,兩種模型的結果如表2所列。結果表明,XGBoost與Logistic regression相比在四項評價指標上均有優勢。
五、結語
本文采用XGBoost分類算法,基于消費金融公司的真實借貸用戶數據進行了特征工程和分類建模的工作,并與傳統的logistic regression方法進行了對比,得到了更加準確的預測結果。通過對變量重要性進行分析,我們識別了對模型貢獻較高的變量。此項目中的機器學習算法最終能夠有效地預測出每個用戶的違約概率,對將先進的機器學習算法應用于保險保費定價領域有重要的現實意義。
【參考文獻】
[1] Chen T,He T,Benesty M. xgboost:Extreme Gradient Boosting[J].2016, 5(9):222-208.
[2] Jiawei Han, Micheline Kamber.數據挖掘概念與技術(第二版),機械工業出版社,2007年:30-65.
[3] P. Geurts, D. Ernst., and L. Wehenkel, “Extremely randomized trees”, Machine Learning, 63(1), 3-42, 2006.
[4] Friedman J H. Greedy Function Approximation:A Gradient Boosting Machine[J]. Annals of Statistics,2000,29(5):1189-1232.
[5] 王星 等.大數據分析與應用,清華大學出版社,2013年:36-40.
[6] 馬豐明. Logistic回歸在我國個人信用評分中的應用研究[D]. 上海財經大學, 2008.
[7]王夢雪. 基于機器學習技術的P2P風控模型研究[D].哈爾濱工業大學,2017.
[8] 單良, 茆小林.互聯網金融時代消費信貸評分建模與應用,2015年:141-144.