python評(píng)分卡
1.?項(xiàng)目背景介紹
1.1 信用風(fēng)險(xiǎn)和評(píng)分卡模型的基本概念
? ? ? ?信用風(fēng)險(xiǎn)指的是交易對(duì)手未能履行約定合同中的義務(wù)造成經(jīng)濟(jì)損失的風(fēng)險(xiǎn),即受信人不能履行還本付息的責(zé)任而使授信人的預(yù)期收益與實(shí)際收益發(fā)生偏離的可能性,它是金融風(fēng)險(xiǎn)的主要類(lèi)型。
? ? ? 借貸場(chǎng)景中的評(píng)分卡是一種以分?jǐn)?shù)的形式來(lái)衡量風(fēng)險(xiǎn)幾率的一種手段,也是對(duì)未來(lái)一段時(shí)間內(nèi)違約、逾期、失聯(lián)概率的預(yù)測(cè)。一般來(lái)說(shuō),分?jǐn)?shù)越高,風(fēng)險(xiǎn)越小。
? ? ? 信用風(fēng)險(xiǎn)計(jì)量體系包括主體評(píng)級(jí)模型和債項(xiàng)評(píng)級(jí)兩部分。其中主體評(píng)級(jí)模型包含以下四個(gè)方面內(nèi)容:
申請(qǐng)者評(píng)級(jí)模型:主要應(yīng)用于相關(guān)融資類(lèi)業(yè)務(wù)中新用戶(hù)的主體評(píng)級(jí),適用于個(gè)人及機(jī)構(gòu)融資主體。位于貸前準(zhǔn)入環(huán)節(jié)。
行為評(píng)級(jí)模型:主要用于相關(guān)融資類(lèi)業(yè)務(wù)中存量客戶(hù)在續(xù)存期內(nèi)的管理,如對(duì)客戶(hù)可能出現(xiàn)的逾期、延期等行為進(jìn)行預(yù)測(cè),僅適用于個(gè)人融資主體。?
催收評(píng)級(jí)模型:主要應(yīng)用于相關(guān)融資類(lèi)業(yè)務(wù)中存量客戶(hù)是否需要催收的預(yù)測(cè)管理,僅適用于個(gè)人融資主體。?
欺詐評(píng)級(jí)模型:主要應(yīng)用于相關(guān)融資類(lèi)業(yè)務(wù)中新客戶(hù)可能存在的欺詐行為的預(yù)測(cè)管理,適用于個(gè)人和機(jī)構(gòu)融資主體。?在貸前準(zhǔn)入環(huán)節(jié)里面。
? ? ? ?本項(xiàng)目主要針對(duì)申請(qǐng)者評(píng)分模型。
1.2 數(shù)據(jù)來(lái)源
? ? ? ? ?本項(xiàng)目數(shù)據(jù)來(lái)源于kaggle競(jìng)賽Give Me Some Credit。
2.?信用卡評(píng)分模型開(kāi)發(fā)
? ? ? 模型的構(gòu)建主要包含以下幾大部分內(nèi)容:數(shù)據(jù)準(zhǔn)備及數(shù)據(jù)預(yù)處理、變量選擇、模型構(gòu)建、模型驗(yàn)證、模型評(píng)估、模型部署、模型監(jiān)控幾大部分。下面一一講述。
2.1 數(shù)據(jù)準(zhǔn)備及數(shù)據(jù)預(yù)處理
2.1.1 獲取數(shù)據(jù)
? ? ? ?數(shù)據(jù)獲取包括存量客戶(hù)包括獲取存量客戶(hù)及潛在客戶(hù)的數(shù)據(jù)。存量客戶(hù)是指已經(jīng)在證券公司開(kāi)展相關(guān)融資類(lèi)業(yè)務(wù)的客戶(hù),包括個(gè)人客戶(hù)和機(jī)構(gòu)客戶(hù);潛在客戶(hù)是指未來(lái)擬在證券公司開(kāi)展相關(guān)融資類(lèi)業(yè)務(wù)的客戶(hù),主要包括機(jī)構(gòu)客戶(hù),這也是解決證券業(yè)樣本較少的常用方法,這些潛在機(jī)構(gòu)客戶(hù)包括上市公司、公開(kāi)發(fā)行債券的發(fā)債主體、新三板上市公司、區(qū)域股權(quán)交易中心掛牌公司、非標(biāo)融資機(jī)構(gòu)等。
? ? ? ?首先我們來(lái)觀察現(xiàn)有的數(shù)據(jù)及指標(biāo)。
? ? ? ?本項(xiàng)目數(shù)據(jù)來(lái)源于kaggle競(jìng)賽Give Me Some Credit。其中訓(xùn)練數(shù)據(jù)共計(jì)15萬(wàn)條。

2.1.2 數(shù)據(jù)預(yù)處理
? ? ? ?通過(guò)python里的describe()函數(shù)可以瀏覽整份數(shù)據(jù)的大致情況:
如下圖:
?

圖?2.1
A.?缺失值處理
? ? ? ?變量中如果有缺失值,針對(duì)缺失值有四種情況:
缺省值極多:若缺省值樣本占總數(shù)比例極高,直接舍棄,因?yàn)樽鳛樘卣骷尤敕炊鴷?huì)引入噪聲值。
非連續(xù)特征缺省值適中:如果缺值的樣本適中,而該屬性非連續(xù)值特征屬性,就把NaN作為一個(gè)新類(lèi)別,加入到類(lèi)別特征中。
連續(xù)特征缺省值適中:如果缺值的樣本適中,考慮給定一個(gè)step,然后離散化,將NaN作為一個(gè)type加入到屬性類(lèi)目中。
缺省值較少:考慮利用填充的辦法進(jìn)行處理。其中有均值、眾數(shù)、中位數(shù)填充;用sklearn里的RandomForest模型去擬合數(shù)據(jù)樣本訓(xùn)練模型,然后去填充缺失值;拉格朗日插值法。
? ? ?可以看出MonthlyIncome(月收入)及NumberOfDependents(家屬數(shù)量)兩個(gè)變量出現(xiàn)了缺失值。由于MonthlyIncome缺失值達(dá)到29731條數(shù)據(jù),比例較大,因此不能直接將缺失值刪除,選擇隨機(jī)森林法。而NumberOfDependents的缺失較少,對(duì)數(shù)據(jù)影響不大,因此直接刪除。
? ? ? ?使用dropna()函數(shù)刪除空值,使用drop_duplicates()刪除重復(fù)值。

B.異常值處理
? ? ? 缺失值處理完畢后,我們還需要進(jìn)行異常值處理。異常值是指明顯偏離大多數(shù)抽樣數(shù)據(jù)的數(shù)值,比如個(gè)人客戶(hù)的年齡大于100或小于0時(shí),通常認(rèn)為該值為異常值。找出樣本總體中的異常值,通常采用離群值檢測(cè)的方法。?離群值檢測(cè)的方法有單變量離群值檢測(cè)、局部離群值因子檢測(cè)、基于聚類(lèi)方法的離群值檢測(cè)等方法。??
? ? ? ?在本數(shù)據(jù)集中,采用單變量離群值檢測(cè)來(lái)判斷異常值,采用箱線(xiàn)圖。
? ? ? ?對(duì)于age變量而言,我們認(rèn)為大于100歲小于等于0歲的為異常值,由箱線(xiàn)圖可知,異常值樣本不多,故直接刪除。
?

圖 2.2
? ? ? ?對(duì)于RevolvingUtilizationOfUnsecuredLines(可用額度比值)及DebtRatio(負(fù)債率)而言,箱線(xiàn)圖如下圖:

圖?2.3
? ? ? 因?yàn)樯鲜鰞勺兞康臄?shù)值型為百分比,故大于1的值全部刪除。
? ? ? 對(duì)于變量x2(逾期30-59天筆數(shù))、x6(逾期90天筆數(shù))、x8(逾期60-89天筆數(shù)做箱線(xiàn)圖,由圖可知,有兩異常值點(diǎn),數(shù)值為96、98,刪除。

圖 2.4
2.2 探索數(shù)據(jù)
? ? ? 探索數(shù)據(jù)主要是為了分析各變量對(duì)輸出結(jié)果的影響,在本項(xiàng)目中,主要關(guān)注的是違約客戶(hù)與各變量間的關(guān)系。
2.2.1 單變量分析
? ? ? 首先來(lái)觀察好壞客戶(hù)的整體情況。
??????

? ? ? ?圖?2.5
? ? ? ? 再看年齡對(duì)違約客戶(hù)率的影響,由下圖可知,違約客戶(hù)率隨著年齡增大而逐步下降。
?

圖?2.6
? ? ?現(xiàn)在再來(lái)分析月收入對(duì)違約客戶(hù)數(shù)量的影響,將月收入劃分為以下幾個(gè)級(jí)別:[0,5000],[5000,10000], [10000,15000],[15000,20000],[20000,100000].由下面兩圖可知,在20000收入之前隨著收入增加,違約客戶(hù)率遞減,而當(dāng)月收入大于20000后,違約客戶(hù)率又隨收入增高發(fā)生遞增。
?

圖?2.7
?

圖?2.8
? ? ? ?接下來(lái)我們?cè)俜治鯪umberOfDependents(家屬數(shù)量)與最終輸出結(jié)果之間的關(guān)系??梢钥闯鲭S著家庭人口增多,違約客戶(hù)率呈現(xiàn)遞增的態(tài)勢(shì)。
?

圖?2.9
?

圖?2.10
? ? ?觀察逾期30-59天次數(shù)與違約客戶(hù)率之間的關(guān)系,可以看出隨著違約次數(shù)增加,違約客戶(hù)率呈現(xiàn)遞增的態(tài)勢(shì)。
?

圖?2.11
? ? ? 對(duì)數(shù)據(jù)的單變量分析就暫時(shí)處理到這里,剩余的變量也采取同樣的方式進(jìn)行分析。
2.2.2 多變量分析
? ? ? 多變量分析主要用于分析變量之間的相關(guān)的程度,python中可采用corr()函數(shù)計(jì)算各變量間的相關(guān)性。由圖11知,各變量間相關(guān)性較小,不存在共線(xiàn)性可能。
?

圖 2.12
3.?構(gòu)建模型
3.1特征選擇
? ? ? 特征選擇非常重要,好的特征能夠構(gòu)造出較好的模型,至于Python的變量選擇代碼實(shí)現(xiàn)可以參考結(jié)合Scikit-learn介紹幾種常用的特征選擇方法。在此,我們采用信用卡評(píng)分模型常用的IV值篩選。具體的IV值及WOE計(jì)算方法在下面這篇博文中有詳細(xì)解釋?zhuān)颂幘筒辉儋樖觥?/p>
3.1.1?特征分箱
? ? ? 特征分箱指的是將連續(xù)變量離散化或?qū)⒍酄顟B(tài)的離散變量合并成少狀態(tài)。離散特征的增加和減少都很容易,易于模型的快速迭代,離散化后的特征對(duì)異常數(shù)據(jù)有很強(qiáng)的魯棒性,能夠減少未離散化之前異常值對(duì)模型的干擾,同時(shí)離散化后可以進(jìn)行特征交叉。此外本文所選的模型算法為邏輯回歸,邏輯回歸屬于廣義線(xiàn)性模型,表達(dá)能力受限;單變量離散化為N個(gè)后,每個(gè)變量有單獨(dú)的權(quán)重,相當(dāng)于為模型引入非線(xiàn)性,提升模型表達(dá)能力,加大擬合,同時(shí)也降低了模型過(guò)擬合的風(fēng)險(xiǎn)。
? ? ? ?特征分箱常用的有以下幾種方法:有監(jiān)督的有Best-KS,ChiMerge(卡分分箱),無(wú)監(jiān)督的包括等頻、等距、聚類(lèi)。根據(jù)數(shù)據(jù)特征,針對(duì)不同數(shù)據(jù)采用不同分箱方式。代碼如下:

3.1.2 WOE值計(jì)算
? ? ? ?定義WOE值并計(jì)算。
?

3.1.3 計(jì)算IV值
? ? ? IV的全稱(chēng)是Information?Value,中文意思是信息價(jià)值,或者信息量。圖13為各變量的IV值。我們定義IV值低于0.2的特征為預(yù)測(cè)能力較弱或無(wú)關(guān)特征,因此將DebtRatio等五個(gè)變量刪除。
?

圖 3.1
3.2?構(gòu)造模型
3.2.1?WOE值替換
? ? ? ? 將篩選后的特征變量進(jìn)行WOE轉(zhuǎn)換,目的是減少邏輯回歸的自變量處理量。

? ? ??
3.2.2 LR建模
? ? ? 采用sklearn里的linear_model 中的LogisticRegression()來(lái)構(gòu)建模型。
?

4.?模型檢驗(yàn)
利用測(cè)試集進(jìn)行測(cè)試??吹絉OC如下圖:
?

圖?4.1
? ? ? ? 從上圖可知,AUC值為0.85,說(shuō)明該模型的預(yù)測(cè)效果還是不錯(cuò)的,正確率較高。
5.?信用評(píng)分
? ? ? 上面的模型的輸出結(jié)果可以為每個(gè)客戶(hù)的客戶(hù)類(lèi)別(好客戶(hù)還是違約客戶(hù)),也可以說(shuō)出每個(gè)客戶(hù)是好客戶(hù)/違約客戶(hù)對(duì)應(yīng)的概率值。這種結(jié)果看起來(lái)不直觀,我們需要把LR模型的結(jié)果值轉(zhuǎn)化為對(duì)應(yīng)的分?jǐn)?shù)(0-999分)。

根據(jù)資料查得:
a=log(p_good/P_bad)
Score = offset + factor * log(odds)

? ? ? 得出各對(duì)應(yīng)特征分組分?jǐn)?shù)為:
?

圖?5.1
? ? ? ?在基礎(chǔ)分?jǐn)?shù)上對(duì)對(duì)應(yīng)的分組分?jǐn)?shù)加減,得出對(duì)應(yīng)的評(píng)分,評(píng)分越高則違約風(fēng)險(xiǎn)越高。
6.?總結(jié)
? ? ? ?本文通過(guò)對(duì)kaggle上的Give Me Some Credit數(shù)據(jù)的挖掘分析,結(jié)合信用評(píng)分卡的建立原理,從數(shù)據(jù)的預(yù)處理、變量選擇、建模分析到創(chuàng)建信用評(píng)分,創(chuàng)建了一個(gè)簡(jiǎn)單的信用評(píng)分系統(tǒng)。本項(xiàng)目還有許多不足之處,比如分箱應(yīng)當(dāng)使用最優(yōu)分箱或卡方分箱,減少人為分箱的隨機(jī)性,此外模型采用的是邏輯回歸算法,還可以多多嘗試其他模型。
轉(zhuǎn)載https://www.cnblogs.com/nick477931661/p/9117879.html

QQ學(xué)習(xí)群:1026993837 領(lǐng)學(xué)習(xí)資料? ? ? ?
在公眾號(hào)「python風(fēng)控模型」里回復(fù)關(guān)鍵字:學(xué)習(xí)資料?
