R語言基于決策樹的銀行信貸風險預(yù)警模型|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=2783
最近我們被客戶要求撰寫關(guān)于信貸風險預(yù)警的研究報告,包括一些圖形和統(tǒng)計輸出。 我國經(jīng)濟高速發(fā)展,個人信貸業(yè)務(wù)也隨著快速發(fā)展,而個人信貸業(yè)務(wù)對提高內(nèi)需,促進消費也有拉動作用
引言
有正必有反,在個人信貸業(yè)務(wù)規(guī)模不斷擴大的同時,信貸的違約等風險問題也日益突出,一定程度上制約著我國的信貸市場的健康發(fā)展。
挑戰(zhàn)
近年來,個人消費貸款的類型呈現(xiàn)出多元化的變化與發(fā)展,由原本的單一貸款種類發(fā)展到今天各式各樣的貸款種類,汽車按揭貸款,教育助學貸款,耐用消費品貸款(家電,電腦,廚具等),結(jié)婚貸款等在我國陸續(xù)開展。違約風險是指債務(wù)人由于各種原因不能按時歸還貸款債務(wù)的風險,對于商業(yè)銀行來說,違約風險主要是指由于貸款人得還款能力下降或者信用水平降低從而違約。
決策樹
決策樹(Decision Tree)是用于分類和預(yù)測的主要技術(shù),它著眼于從一組無規(guī)則的事例推理出決策樹表示形式的分類規(guī)則,采用自頂向下的遞歸方式,在決策樹的內(nèi)部節(jié)點進行屬性值的比較,并根據(jù)不同屬性判斷從該節(jié)點向下分支,在決策樹的葉節(jié)點得到結(jié)論。因此,從根節(jié)點到葉節(jié)點就對應(yīng)著一條合理規(guī)則,整棵樹就對應(yīng)著一組表達式規(guī)則。決策樹是數(shù)據(jù)分析中一種經(jīng)常要用到且非常重要的技術(shù),既能夠用于數(shù)據(jù)分析,也能夠作預(yù)測?;跊Q策樹算法的一個最大的優(yōu)點是它在學習過程中不需要使用者了解很多背景知識,只要訓練事例能夠用屬性即結(jié)論的方式表達出來,就能使用該算法進行學習。

基于決策樹的分類模型有如下幾個特點:(1)決策樹方法結(jié)構(gòu)簡單,,便于理解;(2)決策樹模型效率高,對訓練集數(shù)據(jù)量較大的情況較為適合;(3)樹方法通常不需要接受訓練集數(shù)據(jù)外的知識;(4)決策樹方法具有較高的分類精確度。
相關(guān)視頻
**
拓端
,贊24
**
拓端
,贊15
預(yù)警方案設(shè)計
數(shù)據(jù)在進行操作的過程中,我們一共分了四步,分別是數(shù)據(jù)分析和分離數(shù)據(jù)集,建立訓練數(shù)據(jù)集決策樹,評估模型性能,提高模型性能。
數(shù)據(jù)分析和分離數(shù)據(jù)集
在數(shù)據(jù)進行分析時,可以從中知道所有申請者的違約情況在分離數(shù)據(jù)集這一步,我們將數(shù)據(jù)分成兩部分:用來建立決策樹訓練數(shù)據(jù)集和用來評估模型性能的測試數(shù)據(jù)集,按照80%訓練集和20%測試集來分離樣本。總的來看,這兩個數(shù)據(jù)集的比例是大致相同的,所以分離的兩個數(shù)據(jù)集是合理的。
訓練數(shù)據(jù)集測試數(shù)據(jù)集違約不違約違約不違約0.316250.683750.2350.7652530054700470015300
表1
建立訓練數(shù)據(jù)集決策樹

圖1
圖1是訓練數(shù)據(jù)集決策樹的基本情況。

圖2
圖2是訓練數(shù)據(jù)集的部分決策樹。
由于我們我們的數(shù)據(jù)龐大,生成的決策樹非常的大,上圖的輸出顯示了決策樹的部分分枝,我們用簡單的語言來舉例解釋前五行:
(1)如果支票賬戶余額是未知的,則歸類為不太可能違約。
(2)否則,如果支票賬戶余額少于0,或者1?200之間;
(3)月貸款期限少于或等于11個月的
(4)信用記錄是危及,好的,優(yōu)秀的,差的,歸類為不太可能違約。
(5)信用記錄是非常優(yōu)秀的,就歸類為很有可能違約。
括號中的數(shù)字表示符合該決策準則的案例的數(shù)量以及根據(jù)該決策不正確分類的案例的數(shù)量。
在決策樹中我們不難發(fā)現(xiàn),為什么一個申請者的信用記錄非常優(yōu)秀,卻被判成很有可能違約,而那些支票余額未知的申請者卻不太可能違約呢?這些決策看似沒有邏輯意義,但其實它們可能反映了數(shù)據(jù)中的一個真實模式,或者它們可能是統(tǒng)計中的異常值。
在決策樹生成后,輸出一個混淆矩陣,這是一個交叉列表,表示模型對訓練數(shù)據(jù)錯誤分類的記錄數(shù):

眾所周知,決策樹有一種過度擬合訓練數(shù)據(jù)模型的傾向,由于這個原因,訓練數(shù)據(jù)中報告的錯誤率可能過于樂觀,因此,基于測試數(shù)據(jù)集來評估決策樹模型是非常重要的。
點擊標題查閱往期內(nèi)容

R語言邏輯回歸(Logistic Regression)、回歸決策樹、隨機森林信用卡違約分析信貸數(shù)據(jù)集
左右滑動查看更多
01

02

03

04

評估模型性能
在這一步中使用測試數(shù)據(jù)集做預(yù)測,結(jié)果如圖3所示。
實際值預(yù)測值行合計不違約違約不違約125000.62528000.14015300違約23000.11524000.1204700列合計14800520020000
表2
從表2中可以得知,在測試集樣本中,實際不違約被判為不違約的數(shù)量,占比為0.625;實際不違約被判為違約的數(shù)量,占比為0.140;而實際違約被判為不違約的數(shù)量占比為0.115;實際違約被判為違約的數(shù)量,占比為0.120。
從銀行角度出發(fā),申請人實際不違約被判為違約的影響遠沒有實際違約被判為不違約的影響大。原因有以下幾點:一,申請人實際不違約被判為違約,銀行可能不會通過貸款申請,從而不發(fā)放貸款,這樣銀行不會遭受貸款發(fā)放出去卻收不回來的風險,只是少收部分貸款利息而已。二,申請人實際違約被判為不違約,銀行可能會同意申請人的貸款申請同意發(fā)放貸款,在發(fā)放貸款后,被判為不違約的申請人可能會因為缺乏誠信,不遵守合約規(guī)定按時還款,這樣銀行不僅損失了利息的收入,連本金都有可能收不回來三,在測試數(shù)據(jù)集數(shù)據(jù)中,實際不違約的數(shù)量,占比0.183;而實際違約的數(shù)量,被判為不違約的數(shù)量,占比0.489。
由以上三點可以得出結(jié)論,基于訓練測試集得出的模型,用測試數(shù)據(jù)集中的數(shù)據(jù)進行檢驗,最終出來的結(jié)果并不是很好。從銀行角度出發(fā),如果使用該模型引用到實際生活中,會因為申請人實際違約被誤判為不違約的概率太大,而使銀行做出錯誤的決定,從而產(chǎn)生損失。
模型優(yōu)化方案 - 增加迭代次數(shù),代價矩陣
由上面的評估模型性能可以得知,基于訓練數(shù)據(jù)集得出的模型不太理想,因此我們來提高模型的性能。
1,迭代10次
首先我們選擇使用迭代10次的方法進行對模型性能的提高。
實際值預(yù)測值行合計不違約違約不違約133000.66520000.10015300違約23000.11524000.1204700列合計15600440020000
表3
由表3可以知道經(jīng)過10次迭代,實際違約被判為不違約的數(shù)量占比0.115,與訓練數(shù)據(jù)集的模型相比沒有變化;而實際不違約被判為違約的數(shù)量,占比0.100。
從銀行角度出發(fā),這次的模型性能提高沒有很大的實際意義,因為影響銀行是否虧損的最主要因素是看實際違約被判為不違約的比重,而這次的性能提高并沒有減少實際違約被判為不違約的數(shù)量,所以我們還要繼續(xù)提高模型的性能。
2,迭代100次
根據(jù)上面的步驟知道,迭代10次出來的模型效果并不是很好,所以我們在這一步進行迭代100次的操作。
實際值預(yù)測值行合計不違約違約不違約129000.64524000.12015300違約24000.12023000.1154700列合計15300470020000
表4
經(jīng)過迭代100次的過程出來的結(jié)果由表4所示,與訓練數(shù)據(jù)集的結(jié)果圖相比,由此可以看出該次模型性能的提升沒有較大效果。
3,代價矩陣
由于上述兩次操作均沒有使得模型的性能得到較大的提升,所以在這一步我們決定采用代價矩陣的方式來進行。
這里我們假設(shè)將一個違約用戶錯誤的分類為不違約相比于將不違約用戶錯誤的分類為違約來說,前者相較于后者會給貸款方造成4倍的損失,故代價矩陣為:
上述矩陣行表示真實值,列表示預(yù)測值,第一列和第一行代表不違約,第二列和第二行代表違約。假如該算法正確分類時,則沒有分配代價。圖6是加入代價矩陣的模型分類結(jié)果匯總。
實際值預(yù)測值行合計不違約違約不違約76000.38077000.38515300違約10000.05037000.1854700列合計86001140020000
表5
相較于前面的結(jié)果,在加入代價矩陣后的模型效果不錯,在實際違約被判為不違約的比例上得到了較大程度的下降。
圖3
圖3是測試數(shù)據(jù)集的部分決策樹。
建議
現(xiàn)今,我國的生活水平逐步提升,個人的消費水平也跟著上升,但仍有很多人的工資薪酬漲幅跟不上消費的增長,就會從商業(yè)銀行貸款作為經(jīng)濟生活維持,已提升自己的生活水平,不僅是車輛按揭貸,房產(chǎn)按揭貸款,教育助學貸款,耐用消費品貸款,結(jié)婚貸款等在我國陸續(xù)開展,數(shù)量與規(guī)模也越來越龐大。商業(yè)銀行要從貸款中獲利,就必須加強對于貸款的風險管理,在進行單一評估的同時從大量規(guī)律中獲取經(jīng)驗,對于人力無法理解的大規(guī)模數(shù)據(jù),就需相關(guān)研究來獲取有用的規(guī)律,幫助商業(yè)銀行及其他金融機構(gòu)做出決策,而決策樹對銀行及金融機構(gòu)來說就是一種很好的決策管理方法。
通過決策樹的每一個子節(jié)點可以看出哪一個自變量會對貸款違約有多大的影響,從而商業(yè)銀行可以更加的關(guān)注客戶的這一方面,在這方面嚴格把關(guān)。算法能夠為影響較大的錯誤分類進行誤判代價值的設(shè)定,從而使模型在這類誤判中的增加重視,降低這類錯誤發(fā)生的概率。假設(shè)銀行將實際上不違約的客戶判成了違約,銀行僅僅是少獲得幾筆貸款的利息,不至于把整筆貸款都虧掉變成壞賬;但假如銀行使用了這種算法,對客戶的違約可能性做出更為準確的判斷,便能減少銀行對實際違約的客戶錯判成不違約的情況,降低銀行出現(xiàn)貸款無法追收的情況。

本文摘選?《?R語言基于決策樹的銀行信貸風險預(yù)警模型?》?,點擊“閱讀原文”獲取全文完整資料。
點擊標題查閱往期內(nèi)容
Python信貸風控模型:Adaboost,XGBoost,SGD, SVC,隨機森林, KNN預(yù)測信貸違約支付|數(shù)據(jù)分享R語言用邏輯回歸、決策樹和隨機森林對信貸數(shù)據(jù)集進行分類預(yù)測
Python中用PyTorch機器學習神經(jīng)網(wǎng)絡(luò)分類預(yù)測銀行客戶流失模型
Python中用PyTorch機器學習分類預(yù)測銀行客戶流失模型
銀行信用數(shù)據(jù)SOM神經(jīng)網(wǎng)絡(luò)聚類實現(xiàn)
數(shù)據(jù)度量消費貸款—影響因素數(shù)據(jù)分析
R語言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析心臟病患者
R語言樣條曲線、決策樹、Adaboost、梯度提升(GBM)算法進行回歸、分類和動態(tài)可視化
R語言用主成分PCA、?邏輯回歸、決策樹、隨機森林分析心臟病數(shù)據(jù)并高維可視化
R語言基于樹的方法:決策樹,隨機森林,Bagging,增強樹
spss modeler用決策樹神經(jīng)網(wǎng)絡(luò)預(yù)測ST的股票
在RapidMiner中建立決策樹模型
R語言中使用線性模型、回歸決策樹自動組合特征因子水平
R語言中自編基尼系數(shù)的CART回歸決策樹的實現(xiàn)
決策樹算法建立電信客戶流失模型
R語言用rle,svm和rpart決策樹進行時間序列預(yù)測
python在Scikit-learn中用決策樹和隨機森林預(yù)測NBA獲勝者python中使用scikit-learn和pandas決策樹進行iris鳶尾花數(shù)據(jù)分類建模和交叉驗證