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