基於LendingClub數據的信貸分析和建模報告

一:課題分析

二:數據獲取

三:數據探索

3.1主要特徵含義理解

3.2特徵分佈

3.2.1目標特徵分佈

3.2.2分類變量的分佈

3.2.3連續數值特徵分佈

3.2.4時序特徵分佈

3.2.5文字特徵分佈

3.2.6兩兩特徵的協方差

 

四:數據預處理

4.1數據集劃分

4.2特徵缺失值識別與處理

4.2.1嚴重缺失值的處理

4.2.2缺失值填充

4.3同值性特徵識別與處理

4.4特徵格式變換

4.5文本特徵處理

4.5.1工作機構分類

4.5.2借款人州地址分類

4.5.2.1 k-means聚類分析

4.5.2.2 等頻分箱

4.6時序特徵處理

4.7特徵編碼

4.8歸一化處理

4.9警惕數據泄露

4.9.1警惕不恰當特徵

4.9.2錯誤的交叉驗證策略

 

五:特徵工程

5.1特徵衍生

5.2篩選變量

特徵篩選的目的

5.2.1依據共線性篩選變量

5.2.2依據IV篩選變量

5.3特徵分箱

5.3.1對無缺省值的連續型數值變量分箱

5.3.2對含有缺省值的連續型數值變量分箱

 

六:建模

6.1建立評分卡

6.2建立隨機森林模型

 

七:總結

一:課題分析

課題:

研究小微企業主貸款的風險特徵,提出可應用性強的風險評估模型構建方案。

課題分析:

小微企業貸款信用評估與小微企業主個人信用情況關係密切,本文將以lendingclub信貸平臺上的公開數據作爲小微企業主信貸數據模擬樣本,構造一個簡單明瞭的傳統信貸申請評分卡(A卡),和一個解釋性較差的黑箱預測模型,用於輔助決策。

 

二:數據獲取

根據巴塞爾協議提供的經驗,正常還款12期以上的貸款人,其還款狀態會趨於穩定,因此,我選擇LendingClub平臺(以下簡稱LC)2017年Q1的數據,那麼我們的樣本到目前爲止還款全部超過12個月其數據更新度高樣本可以被有效利用

由上圖,樣本共有42538條數據,共有145個特徵變量,樣本量夠大,對它們的分析具有統計意義。

此樣本是經過LC平臺依據一些條件(比如FICO值)篩選過的美國借款人的樣本,因此應用具有一定侷限性。

 

三:數據探索

在着手處理數據之前,先了解基本的數據情況,爲進一步的數據探索、數據預處理、特徵工程和建模做準備。

3.1主要特徵含義理解

主要特徵摘錄:

3.2特徵分佈

3.2.1目標特徵分佈

 

fully paid:完全結清 charged off:壞賬註銷

由上表可知,此樣本集是一個不平衡數據集。在後續過程中需要考慮到這一點。

 

3.2.2分類變量的分佈

 

探索典型分類變量依據好壞樣本兩類的分佈並進行可視化展示

由上左圖:

借款人多選擇36期貸款,選擇60期貸款的違約率要高一些。

由上右圖:

我們需要首先理解一下grade這個特徵。grade是LC自評等級,不同的網貸平臺投資人有不一樣的風險收益偏好,LC平臺依據這種多樣化的需求,將借貸人分成A-G七個等級。

LC使用複雜的算法對每筆貸款予以評級,這個評級和借款人的利率息息相關(這也說明,grade與某些特徵是存在關係的)。比如說,那些信用歷史好,還款能力好的借款人利率偏低,約7%,其貸款等級通常爲A級。從A到G,貸款的風險越來越高,利率也越來越高。

從圖中,我們也可以看出這個趨勢。

另外,無論是投資人還是借貸者,大多數都是選擇較低風險較低收益的類型。

 

由上左圖:

settlement_status(借款人結算計劃的狀態),只有違約註銷了纔會有這一項,屬於嚴重缺失值。而且這是貸後指標,對貸前預測模型沒有意義。

由上右圖:

工作時長低於1年(包括1年)與10年以上的借款人最多,兩者的違約比例相差不大,這張圖打破了人們慣常以爲的工作年限長就靠譜的想法。除此兩類,在2-9年內,隨着工作年限越長,貸款需求越少,可能是因爲收入越來越穩定吧。

由上左圖:

債務整合(舉債還債)這類最多。另外3項是:住房改善、汽車、大宗採購,也就是基本生活需求。相對來說,借錢做生意的,違約率較高。

由上右圖:

debt_settlement_flag表示已註銷的借款人是否與債務結算公司合作。屬於貸後信息。

由上左圖:

借款人住房按揭、租房最多,違約率不相上下;

由上右圖:

表徵收入或收入來源是否經過覈實。大部分借款是經過覈實的,經過簡單計算可知,覈實的借款違約率約爲0.15,未經覈實的違約率約爲0.14.可以說明網上提交的申請數據還是比較誠實的。另外,也可以初步推斷,這個變量的預測能力應該不是特別強。

 

 

3.2.3連續數值特徵分佈

探索連續變量的分佈並可視化展示:

數據集中有幾十個連續特徵,下面是示例圖:

其餘圖示省略。

從這些圖中可以初步得出如下信息:

  • 貸款額度、分期付款金額成有些長尾的正態分佈,說明貸款額度集中在中小額度,但是也有分散的大額度

  • 年收入集中在0-10萬刀以內,但是也有極高收入(最高達到600萬)的借款人

  • 負債率較符合正態分佈,但是高負債率相較低負債率違約風險更大

  • 分析過去2年內的違約次數分佈,即便1次違約記錄都沒有,這次也可能會出現違約,

  • 過去6個月內查詢次數越多,違約的概率越大

  • 迄今爲止收到的付款總額或本金越少,違約率越高,這也顯示了貸中監控的重要性,有問題及時預警。

  • 。。。

     

3.2.4時序特徵分佈

全部時序特徵:issue_d:(款發放月份),earliest_cr_line(首開信用卡時間),last_pymnt_d最近一次收到還款的時間),last_credit_pull_dLC撤回信貸最近的月份),其中第1,3,4項都是貸後數據。

首開信用卡時間分佈圖:

由上圖可知:近期開信用卡的借款人居多,在時間維度上,借款人的分佈類似正態分佈。

 

3.2.5文字特徵分佈

樣本中的文本特徵有:借款人所在地,借款描述,職位頭銜

詞雲的優勢是從大量文字樣本中一眼看出文本的主要內容。

通過詞雲瞭解各個文本特徵分佈:

按還款狀態分類統計借款人所在州的分佈:

輸出:

 由上圖可知:

借款人的區域來源,主要集中在加州、德州、紐約等等這些大州,後續數據處理可以考慮將這些主要區域提取出來。

借款描述:支付信用卡欠款

職務頭銜:借款人的職務背景按照數量分佈依次是公司、軍隊、醫院。。。

 

 

3.2.6兩兩特徵的協方差

對樣本特徵的相關性有一個直觀的理解:

輸出基於協方差的熱力圖:

上圖中淺顏色的部分是表示特徵相關度高,除了對角線的區域,其它區域也分佈着高相關性特徵對,這說明樣本集中某些特徵之間存在強線性相關性,這個問題在選用某些機器學習模型(比如基於線性迴歸的模型族)時會顯著影響模型性能,需要引起注意。

 

 

四:數據預處理

根據初步數據探索分析的結果,我們知道:

  • 數據集存在嚴重的數據缺失問題

  • 某些連續型特徵用字符型特徵表示,如百分比類的

  • 部分特徵存在明顯的共線性關係

     

4.1數據集劃分

爲了避免驗證集/測試集數據被污染,最好在數據預處理之前進行訓練集,驗證集,測試集的劃分。

訓練集用於訓練模型,驗證集用於初步評估/優化模型,測試集進行最終的測試。

4.2特徵缺失值識別與處理

4.2.1嚴重缺失值的處理

找到缺失超過60%的特徵,並進一步瞭解缺失情況:

截取輸出結果的一部分:

從上表中可以看到,其中絕大部分特徵都是完全缺失,對於這種,毫無疑問要刪除。但是其中的mths_since_last_delinq(距離上次違約的月份數)、mths_since_last_record(距離上一次公共黑記錄月份數)從經驗判斷應該對評估借款人的信用有幫助,所以,即便這2個屬於嚴重缺失數據,也必須留下來。此外,嚴重缺失特徵中還包括settlement(結算)信息,這屬於貸後信息,不應包含在申請評分卡模型中,一併刪除。

故:

4.2.2缺失值填充

瞭解現有缺失值的情況,根據缺失比例,缺失值的具體信息含義,缺失特徵性質,來決定處理策略:

上表中標紅數據留後處理。

實施:

注:

  • 由於接下來將用到邏輯迴歸模型,它對特徵線性相關性較敏感,所以儘管用其它變量擬合缺失值對缺失值的填充會更符合實際情況,也沒有采用這種方法。

  • 爲什麼使用衆數填充而不是用中位數或是均值填充?因爲衆數對於數值型變量和字符型變量都適用,而且也有統計意義。

 

4.3同值性特徵識別與處理

如果一個變量大部分的觀測都是相同的特徵,那麼這個特徵或者輸入變量就是無法用來區分目標時間,一般來說,臨界點在90%。但是最終的結果還是應該基於業務來判斷。

按衆數佔比從小到大給佔比高於90%的特徵排序,並且依據特徵內涵確定處理策略:

實施:

4.4特徵格式變換

這一步將格式雜亂的特徵進行規整.

4.5文本特徵處理

經過上述步驟處理後,現有的文本類數據包括:emp_title(職務信息),desc(借款描述), title(標題),addr_state(借款人地址),其中desc/title與purpose相關性較強,都是表明借款用途的信息。

emp_title字面上看是職務頭銜,但是實際內容是借款人所在機構,它類型多,且是文本型特徵,但是根據數據探索階段得到的結論,這個變量含有預測性的信息,用模型分箱相當耗費性能,所以根據經驗考慮嘗試機構類別將它分類。

addr_state也包含預測性信息,可以嘗試用卡方分箱或依據經驗進行進行分類。

 

4.5.1工作機構分類

工作機構分類,依據A政府機構類,B銀行類,F醫院類,E學校類,C自職業類,D公司和其它類,G退休類分類. 如果數據中的emp_title與某個上述A-G有交集,則將它劃爲該類,用字母字符表示; 缺省值爲’H'。

注:由於下面要應用到隨機森林模型,它只接受數值型和類別型變量,不接受

‘object’或區間格式的變量,爲了方便,將類別統一用數字表示。其它的格式變換也是如此。

4.5.2借款人州地址分類

4.5.2.1 k-means聚類分析

首先嚐試使用k-means方式進行聚類,看看每一類中的州地址有沒有什麼共性:

從輸出結果中並沒有看出不同羣體有什麼共性。

 

4.5.2.2 等頻分箱

用頻數進行分類,使每一個分組內的樣本數儘量相近

4.6時序特徵處理

在4.4格式轉換部分,將earliest_cr_line,issue_d的字符串格式數據,轉換爲標準datetime格式數據,方便後續的特徵工程。

 

4.7特徵編碼

邏輯迴歸和隨機森林模型不接受字符型變量,因此需要將對此類變量進行編碼。

常用的編碼方式有類別標籤法(不同的類別映射到不同的數值),啞變量編碼法(對類別變量取啞變量)等等。考慮到評分卡模型的簡潔性,在此選用類別標籤法。

4.8歸一化處理

邏輯迴歸模型基於線性迴歸,求參需要用到梯度下降法,爲了加快迭代速度,不同特徵的變化範圍規模相差不宜過大,如果用數值直接帶入邏輯迴歸模型,必須進行變量縮放。但是本文是用邏輯迴歸建立評分卡,會將數值變量進行分箱,所以這一步可以省略。

 

4.9警惕數據泄露

數據泄露分爲2種:不恰當特徵導致的泄露、不恰當的交叉驗證策略導致泄露

4.9.1警惕不恰當特徵

所有特徵中,一旦在目標屬性出現後,會隨之更新或出現的屬性,屬於會泄露信息的屬性,在這個數據集中,包括貸中、貸後特徵。

刪除此類特徵(之前預處理步驟中已經刪除了一些):

4.9.2錯誤的交叉驗證策略:

儘量保證驗證集數據的純粹,不要讓它參與到訓練集的處理和模型構建當中,這意味着,要在預處理之前分割訓練集和測試集。

 

五:特徵工程

5.1特徵衍生

將時序變量衍生爲月份值,將(貸款發放時間-首次使用信用卡時間)作爲一個新的變量,表示信用歷史(cre_hist),單位是月份。

5.2篩選變量

5.2.1依據共線性篩選變量

邏輯迴歸是基於線性迴歸模型,其前提假設是用於建模的特徵之間不存在線性相關性,因此,它對共線性問題比較敏感。共線性的存在對模型穩定性有很大影響,並且也無法區分每個特徵對目標變量的解釋性。

 

依據VIF(方差膨脹係數)篩選變量

每個特徵的VIF計算是用其它特徵對它進行迴歸擬合,如果這種擬合的解釋性很強,說明它們之間存在多重共線性。

用VIF計算連續型變量的共線性:

得到從大到小的VIF值排序:

用協方差計算線性相關性:

根據經驗,vif>10,cor>0.7,變量之間的有顯著性的相關性。

從上述關於協方差和VIF的分析結果中我們可以看到:installment&loan_amnt,int_rate&grade,total_acc&open_acc,pub_rec_bankruptcies&pub_rec之間存在線性關係,因爲pub_rec_bankruptcies&pub_rec中大多數都是0,所以其有相關可以解釋。剩下的幾對,我們可以嘗試先刪除每對中的一個,刪除installment & grade,再去檢測相關係數。

此外,有幾個處於邊界地帶的特徵,暫時留下,特徵工程中刪除特徵時要謹慎,因爲刪除特徵,意味着棄用一些信息。

5.2.2依據特徵重要性篩選變量

篩選變量常用的方法有,基於正則化損失函數的線性模型,基於機器學習模型輸出的特徵重要性,基於IV值。

在此,爲了方便進行評分卡建模,採用IV值.

定義woe和iv:

計算每個變量的IV 值並按從大到小的順序排序:

如果輸出IV值是無窮,說明該特徵中某些屬性中缺失某類樣本,這需要重新分箱,將這類樣本添加到相鄰類(對於連續型數值樣本)或樣本數量較少的那一類(對於分類樣本)中去: deling_2yrs:把7.0,8.0,9.0,11.0劃歸到7.0那一類,全算作6.0

home_ownership:把2添加到1 這一類

pub_rec:把3.0,4.0,添加到2.0這一類

保留IV大於0.15的特徵:

5.3特徵分箱

特徵分箱就是把連續特徵轉化爲離散特徵,或者減小離散特徵的離散性。

特徵分箱有如下好處:

  • 特徵分箱後,特徵被簡化,也簡化了模型,比如在邏輯迴歸評分卡模型中,評分卡被簡化,基於決策樹的模型中,決策樹枝杈減少,降低了過擬合的風險,有效增加了模型的穩定性。

  • 特徵分箱可以將缺失值劃爲一類,比如此樣本中無法被編碼的公共記錄缺失類。

  • 特徵離散化後對異常數據也有更強的容錯性。比如假設年齡數據中出現1000歲,模型可以自動將其劃分爲>80歲一類,否則它會對對異常值敏感的模型如(邏輯迴歸)造成很大影響。

  • 特徵離散化之後,方便進一步進行非線性的特徵衍生。

 

分箱的方法:

常用的分箱方法包括卡方分箱、等頻或等距分箱、聚類、依據經驗分箱等。

對連續型數值變量,在此採用有監督的最優分箱法——卡方分箱。

定義卡方分箱函數:

5.3.1對無缺省值的連續型數值變量分箱

對連續型數值變量實施分箱,得到切割點:

注:上表中的切割點不包括最大點,最小點。

製作切割點字典:

實施分箱:

5.3.2對含有缺省值的連續型數值變量分箱

對兩個比較特殊的變量mths_since_last_delinq’和'mths_since_last_record',它們也是屬於連續型特徵變量,但是卻存在缺失值,分箱策略是將缺失值作爲一類,其他類進行卡方分箱。

得到2者的切割點:

‘mths_since_last_delinq’:
[19.0, 33.0, 38.0, 63.0]

 

'mths_since_last_record':

[46.0, 68.0, 79.0, 82.0]

實施分箱:

將所有變量分箱後的效果如下:

六:建模

經過之前的數據處理和特徵工程,得到了分箱後的,規整的數據,並且找到了對評分卡來說,高預測性能的特徵。

這部分我會建立1個傳統的評分卡和1個較複雜解釋性較差但預測性較好的隨機森林模型。

 

6.1建立評分卡

在5.2.2節,得到了每個特徵中不同屬性的woe值,它的含義是該分類對“好結果”的貢獻度。

建立評分卡的步驟如下:

  • 用woe值替換相應位置的屬性值

  • 建立邏輯迴歸模型

  • 根據迴歸結果計分

實施:

評估模型的預測性能:

auc約爲0.672,ks值約爲0.35,在評分卡建模中,ks值大於0.3,說明這是一個基本可用的模型。

 

輸出評分卡:

所得評分卡見附錄——評分表.pdf。

 

6.2建立隨機森林模型

評分卡的優勢在於簡單明瞭,但是它無法包含更多的信息。隨機森林的是以決策樹爲弱學習模型通過bagging方法構造出的強學習模型,它能容納更多的信息,同時通過多模型投票,又能很好的避免過擬合的影響,它正好彌補了這一缺陷。這一模型可以作爲評分卡的參考。

用網格搜索的方式優化邏輯迴歸森林模型:

迴歸森林模型中,n_estimators表示底層決策樹個數,一般來說,樹的個數越多,模型的穩定性越強,但是它的增大要受限於計算性能。

參數遍歷之後,最優n_estimator取值爲100, 此模型比評分卡模型的性能稍好一點。

 

用學習曲線判斷模型的擬合狀態:


模型在訓練和測試樣本上,隨着訓練樣本的增加,貼合很好,並無過擬合現象。

 

七 總結

在評估小微企業信貸風險時,個人信用評分只是其中一個環節,還應該綜合考慮借貸人的經營情況,出借方的風險偏好等其他因素,構建風控策略和風控系統。

 

參考:

信用評分卡模型 —— 基於Lending Club數據

構建lending club的信用評分模型

一篇文章搞懂機器學習風控建模過程

【有監督分箱】方法一:卡方分箱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章