0
本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :
Credit Scoring with Machine Learning
作者 | Hongri Jia
翻譯 | 胡瑛皓
校對 | 醬番梨 審核 | 約翰遜·李加薪 整理 | 立魚王
原文鏈接:
https://medium.com/henry-jia/how-to-score-your-credit-1c08dd73e2ed
信用評分是衡量人們信用的數(shù)字表示。銀行業(yè)通常用它作為支持信貸申請決策的方法。本文講述如何用Python(Pandas、Sklearn)開發(fā)標(biāo)準(zhǔn)評分卡模型,它已成為一種最受歡迎且最簡單的衡量客戶信用的形式。
如今信用對每個人來說都非常重要,因為它是衡量一個人是否可靠的一種指標(biāo)。很多時候服務(wù)提供商在提供服務(wù)前會先評估客戶的信用記錄,然后決定是否提供服務(wù)。可是審核個人資料并手工生成信用報告是非常耗時的。信用評分節(jié)省時間而且容易解讀,所以就被開發(fā)出來服務(wù)這些目的。
產(chǎn)生信用分的過程稱為信用評分,它被廣泛應(yīng)用于許多行業(yè)特別是銀行業(yè)。銀行通常用信用分決定誰應(yīng)該授信、授信額度是多少、使用什么樣的操作策略去避免信用風(fēng)險??傮w來說主要是兩部分:
建立統(tǒng)計模型
應(yīng)用統(tǒng)計模型為信用申請或現(xiàn)有信用帳戶打分
本文會介紹最受歡迎的信用評分方法,我們稱為評分卡模型。有兩個原因使其成為主流的方法。首先,評分卡模型很容易跟沒有相關(guān)背景和經(jīng)驗的人(諸如客戶)解釋說明。其次,評分卡模型的開發(fā)過程很標(biāo)準(zhǔn)且被廣泛接受,這意味著公司不需要投入太多研發(fā)經(jīng)費。以下是評分卡的樣例,后面會講到如何使用。
圖1 評分卡樣例
接下來將詳細(xì)說明如何開發(fā)評分卡模型。我用的數(shù)據(jù)集來自Kaggle競賽。 圖2列出該數(shù)據(jù)集的數(shù)據(jù)字典信息。其中第一個變量是目標(biāo)變量,二元分類變量,其余變量是特征。
圖2 數(shù)據(jù)字典
瀏覽完數(shù)據(jù)后,開始用一些特征工程的方法處理一下數(shù)據(jù)。首先檢查每個特征變量是否包含缺失值,然后用中位數(shù)估算補齊。
接下來處理異常值??傮w來說,需要根據(jù)異常的類型進(jìn)行處理。例如 如果異常值是由機(jī)械錯誤或測量導(dǎo)致的,可以用缺失值的方法進(jìn)行處理。在這個數(shù)據(jù)集中有很大的數(shù)值,不過這些值看起來都很合理,所以取top/bottom coding。圖3中表明當(dāng)采用top coding后,數(shù)據(jù)分布看起來更接近于正態(tài)。
圖3 用Top coding處理異常值
如圖1中樣例評分卡所示,很顯然每個特征已被分組為不同的屬性(或?qū)傩越M),分組原因如下:
有助于洞察特征的關(guān)聯(lián)屬性及性能
在非線性依賴特征應(yīng)用線性模型
深入了解風(fēng)險預(yù)測器的行為,有助于制定更好的組合管理策略
那么我們可以采用分桶法,處理后每個值被賦予它所應(yīng)在的一個屬性,這樣一來數(shù)值特征便被轉(zhuǎn)化為分類特征。以下是分桶后的輸出樣例。
圖4 分桶處理“年齡”
所有特征分組后,特征工程就完成了。接下來是計算每個屬性的證據(jù)權(quán)重(WoE)以及每個特點(特征)的信息價值。之前提到將所有數(shù)值類型都分桶處理后轉(zhuǎn)換為分類型特征。然而不能直接用這些分類模型去擬合模型,所以需要給這些分類特征賦予一些數(shù)值。計算證據(jù)權(quán)重(WoE)的目的是為每個分類變量分配一個唯一值。信息價值(IV)用來衡量特征的預(yù)測力,將被用于特征選擇。下面給出WoE和IV的公式。這里“Good”意思是客戶不會有嚴(yán)重逾期或者目標(biāo)變量=0,而“Bad”客戶會產(chǎn)生逾期目標(biāo)變量=1.
通常特征分析報告可提供WoE和IV。我在Python中定義了一個函數(shù)自動生成這個報告。以“Age”特征為例,其特征分析報告如圖5所示
圖5 “Age”特征分析報告
繪制一張柱狀圖,方便比較各種特征的IV。從柱狀圖中可以看到最后兩個特征“NumberOfOpenCreditLinesAndLoans”和 “NumberRealEstateLoansOrLines”的IV值較小,因而只選用其他8個特征訓(xùn)練模型。
圖6 特征預(yù)測力
特征選取完成后,用WoE替換原有變量的值進(jìn)行建模。訓(xùn)練模型的數(shù)據(jù)已經(jīng)準(zhǔn)備好了。評分卡模型開發(fā)通常使用的模型是邏輯回歸,它是一個通用的二分類模型。我通過交叉驗證和網(wǎng)格搜索調(diào)整參數(shù),然后用測試數(shù)據(jù)集檢查模型的精度。 由于Kaggle不會給出目標(biāo)變量的值,我不得不在線提交以獲得精度。為了證明這些數(shù)據(jù)處理是有效的,我分別用原始數(shù)據(jù)和處理后的數(shù)據(jù)進(jìn)行建模。Kaggle給出的結(jié)果,經(jīng)過數(shù)據(jù)處理精度從0.693956提升至0.800946。雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
最后一步是為每個屬性計算評分卡得分系數(shù),這樣就得到了最終的評分卡。評分卡模型的得分可以通過以下式子計算得到:
Score = (β×WoE+ α/n)×Factor + Offset/n
此處:
β?—含?給定屬性的邏輯回歸模型的系數(shù)
α?—邏輯回歸模型的截距?
WoE?—?給定屬性的證據(jù)權(quán)重
n?—模型特征數(shù)量
Factor, Offset?—?縮放參數(shù)
前四個參數(shù)的計算方法在前面已經(jīng)提到過,這里給出最后兩個參數(shù)factor和offset的計算方法。
Factor = pdo/Ln(2)
Offset = Score?—?(Factor × ln(Odds))
這里pdo意思是加倍odds需要的點數(shù),壞樣本率在之前的特征分析報告中已計算過了。如果評分卡模型的基礎(chǔ)odds是50:1,其得分為600,那么pdo=20 ,也就是說每增加20點odds翻一倍,具體來說factor和offset公式如下:
Factor = 20/Ln(2) = 28.85
Offset = 600- 28.85 × Ln (50) = 487.14
算完這些之后,評分卡開發(fā)就完成了,圖7中列出了評分卡的部分結(jié)果。
圖7 最終評分卡 部分特征
如果來了一個新客戶,你可以立刻查表找出特征對應(yīng)的得分,然后評分卡最終的得分是每個特征得分值之和。比如說,銀行開發(fā)了一位新的信用卡申請人,年齡45歲、負(fù)債率0.5、月收入5000美元。其信用評分為 53 + 55 + 57 = 165。
如需要開發(fā)更精準(zhǔn)的評分卡,開發(fā)人員需要考慮更多場景。例如有些個人屬于“Bad”,然而申請卻通過了?;蛘咭恍﹤€人屬于“Good”,但申請被拒絕。因此拒絕推斷需要結(jié)合到開發(fā)過程中。這里并未實現(xiàn),因為在我的數(shù)據(jù)集中缺少拒絕數(shù)據(jù)。如果你想更深入了解這部分,推薦你閱讀Naeem Siddiqi寫的 《Credit Risk Scorecards?—?Developing and Implementing Intelligent Credit Scoring》。
想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?
點擊【用機(jī)器學(xué)習(xí)做信用評分】即可訪問:
https://ai.yanxishe.com/page/TextTranslation/1626
機(jī)器學(xué)習(xí)大禮包
限時免費\18本經(jīng)典書籍/Stanford經(jīng)典教材+論文
點擊鏈接即可獲取:https://ai.yanxishe.com/page/resourceDetail/574
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。