一医咨、賽題背景
本次新人賽是Datawhale與天池聯(lián)合發(fā)起的0基礎入門系列賽事第四場 —— 零基礎入門金融風控-貸款違約預測母剥。
賽題以金融風控中的個人信貸為背景误续,要求選手根據(jù)貸款申請人的數(shù)據(jù)信息預測其是否有違約的可能飘哨,以此判斷是否通過此項貸款感局,這是一個典型的分類問題尼啡。通過這道賽題來引導大家了解金融風控中的一些業(yè)務背景,解決實際問題询微,幫助競賽新人進行自我練習崖瞭、自我提高。
比賽鏈接:https://tianchi.aliyun.com/competition/entrance/531830/information
二撑毛、數(shù)據(jù)概況
賽題以預測用戶貸款是否違約為任務书聚,數(shù)據(jù)集報名后可見并可下載,該數(shù)據(jù)來自某信貸平臺的貸款記錄藻雌,總數(shù)據(jù)量超過120w雌续,包含47列變量信息,其中15列為匿名變量胯杭。為了保證比賽的公平性驯杜,將會從中抽取80萬條作為訓練集,20萬條作為測試集A做个,20萬條作為測試集B鸽心,同時會對employmentTitle滚局、purpose、postCode和title等信息進行脫敏顽频。
每個字段的描述信息如下:
- id :為貸款清單分配的唯一信用證標識
- loanAmnt :貸款金額
- term :貸款期限(year)
- interestRate :貸款利率
- installment :分期付款金額
- grade :貸款等級
- subGrade: 貸款等級之子級
- employmentTitle: 就業(yè)職稱
- employmentLength: 就業(yè)年限(年)
- homeOwnership :借款人在登記時提供的房屋所有權狀況
- annualIncome :年收入
- verificationStatus: 驗證狀態(tài)
- issueDate :貸款發(fā)放的月份
- purpose :借款人在貸款申請時的貸款用途類別
- postCode :借款人在貸款申請中提供的郵政編碼的前3位數(shù)字
- regionCode :地區(qū)編碼
- dti :債務收入比
- delinquency_2years: 借款人過去2年信用檔案中逾期30天以上的違約事件數(shù)
- ficoRangeLow :借款人在貸款發(fā)放時的fico所屬的下限范圍
- ficoRangeHigh :借款人在貸款發(fā)放時的fico所屬的上限范圍
- openAcc :借款人信用檔案中未結信用額度的數(shù)量
- pubRec :貶損公共記錄的數(shù)量
- pubRecBankruptcies: 公開記錄清除的數(shù)量
- revolBal :信貸周轉余額合計
- revolUtil :循環(huán)額度利用率藤肢,或借款人使用的相對于所有可用循環(huán)信貸的信貸金額
- totalAcc :借款人信用檔案中當前的信用額度總數(shù)
- initialListStatus: 貸款的初始列表狀態(tài)
- applicationType :表明貸款是個人申請還是與兩個共同借款人的聯(lián)合申請
- earliesCreditLine :借款人早報告的信用額度開立的月份
- title :借款人提供的貸款名稱
- policyCode :公開可用的策略代碼=1新產品不公開可用的策略代碼=2
- n系列匿名特征 匿名特征n0-n14,為一些貸款人行為計數(shù)特征的處理
三冲九、評價指標
由于該賽題為二分類問題谤草,需要理解二分類問題的常用模型指標,包括混淆矩陣莺奸、準確率丑孩、召回率、精準度灭贷、F1 score温学、PR曲線、ROC曲線和AUC
本賽題排名所用指標為AUC
通常情況下甚疟,通過某種機器學習算法對訓練數(shù)據(jù)集進行學習后建立的模型在機器學習領域內稱為“學習器”仗岖。由于本研究涉及的算法為監(jiān)督學習中的分類算法,所以本文中將模型稱為“分類器”(classifier)览妖。
一般地轧拄,給定一個訓練數(shù)據(jù)集D:
D = {(x1, y1), (x2, y2), …… , (xn, yn)}
其中(xi,yi)讽膏,i = 1檩电,2,…府树,N俐末,為數(shù)據(jù)集D中第i個訓練樣本,xi為輸入X的觀測值奄侠,稱為特征向量卓箫;yi是輸出Y的觀測值,稱為標簽垄潮。經過在訓練集D上的學習后烹卒,獲得一個分類器,用函數(shù)H(x)表示弯洗。
分類器對某樣本的預測結果和其真實標簽的差異稱為“誤差”旅急,我們把分類器在訓練數(shù)據(jù)集上產生的誤差稱為“訓練誤差”,在新樣本上的誤差稱為“泛化誤差”涂召。幾乎在所有情況下坠非,常用的機器學習算法(包括深度學習)都可以對訓練數(shù)據(jù)集擬合地很好,但在新樣本上表現(xiàn)較差果正,這種情況稱為“過擬合”炎码。出現(xiàn)這種情況的原因是模型把訓練數(shù)據(jù)集中自身存在的一些隨機的盟迟、不具有普遍性的特征也進行了學習,導致的泛化能力的下降潦闲。通吃懿ぃ可以通過在原始數(shù)據(jù)集上取出一部分樣本作為測試數(shù)據(jù)集,然后以分類器在測試集上的測試誤差作為泛化誤差的近似歉闰。
3.1 混淆矩陣
針對分類器泛化性能的評估需要衡量模型泛化能力的評價標準辖众。對于本研究涉及的二分類問題,可根據(jù)樣本真實類別和分類器預測類別分為真正(true positive和敬,TP)凹炸、假正(false positive,F(xiàn)P)昼弟、真負(true negative啤它,TN)和假負(false negative,TP)舱痘,由下面表格所示的混淆矩陣表示变骡。
真實結果 | 預測結果 | 預測結果 |
---|---|---|
—— | 正 | 負 |
正 | 真正,TP | 假負芭逝,F(xiàn)N |
負 | 假正塌碌,F(xiàn)P | 真負,TN |
3.2 準確率旬盯、召回率台妆、精準度、F1 score
分類器預測的準確度定義為:
(TP + TN) / (TP + TN + FP + TN)
表示所有樣本中預測正確的比例瓢捉,包括真正和真負频丘。
召回率定義為:
TP / (TP + FN)
表示在所有實際為正的樣本中办成,有多少比例被分類器正確捕獲到了泡态。
精準度定義為:
TP / (TP+FP)
表示在所有分類器預測為正的樣本中,有多少比例實際為正(判斷正確的)迂卢。
從上述定義中可以發(fā)現(xiàn)某弦,召回率和精準度是一對互相矛盾的指標,即模型嚴格時而克,精準度高而召回率低即模型預測為正的樣本中正確的比例較高靶壮,但同時導致一些在判斷閾值邊緣的正樣本無法被模型捕獲;反之员萍,模型較為寬松時腾降,精準度低而召回率高(一個恰當?shù)谋扔骶褪牵皩幙慑e殺一千也不放過一個”)
因此碎绎,一般可以使用F1 score指標來平衡召回率和精準度:
F1 score = 2 * percision * recall / (percision + recall)
3.3 P-R 曲線螃壤、ROC曲線和AUC
很多情況下分類器都可以輸出每個被預測為正的樣本的概率抗果,將概率從大到小進行排序,按順序將每個概率設置為“閾值”奸晴,高于閾值對應的樣本作為新的正例冤馏,低于閾值對應的樣本作為新的負例,重新計算精準度和召回率并分別作為縱軸和橫軸寄啼,畫出一系列點組成的曲線就是P-R曲線逮光。
一般來說P-R曲線會從點(0,1)附近,逐漸變化到點(1,0)附近墩划。
這兩點的含義分別是:
- 模型極端嚴格涕刚,所有預測為正的樣本都一定實際判斷正確,精準度100%乙帮,而由于大多數(shù)正例無法“過關”副女,導致召回率非常低;
- 模型極端寬松蚣旱,比如將所有樣本均判斷為正碑幅,此時召回率為100%,但其中摻雜了許多“假的正例”塞绿,導致查準率很低沟涨。
ROC曲線的繪圖邏輯和P-R曲線類似,但是假正例率(FPR)定義為 X 軸异吻,真正例率(TPR)定義為 Y 軸裹赴。
其中:
TPR 即為召回率
FPR = FP / (FP + TN),表示實際為負的樣本中诀浪,判斷錯誤的比率棋返。
ROC曲線是一個從點(0,0)附近逐漸變化到點(1,1)的曲線。
在某一個判斷閾值下雷猪,假正例率越低同時召回率越高說明模型表現(xiàn)約好睛竣,所有ROC曲線越靠近左上角說明模型性能越優(yōu)越。當曲線擬合值y=x時說明模型真實性最低求摇,不具備應用價值射沟。
由于ROC曲線的整體空間為1 * 1,所以可以用曲線下方面積作為評價指標与境,該指標被稱為AUC验夯,取值范圍為(0.5, 1),AUC越大越好摔刁。
3.4 金融風控領域常見評估指標KS(Kolmogorov-Smirnov) 曲線
K-S曲線與ROC曲線類似挥转,不同在于
- ROC曲線將真正例率和假正例率作為橫縱軸
- K-S曲線將真正例率和假正例率都作為縱軸,橫軸則由選定的閾值來充當。
KS不同代表的不同情況绑谣,一般情況KS值越大准潭,模型的區(qū)分能力越強,但是也不是越大模型效果就越好域仇,如果 KS過大刑然,模型可能存在異常,所以當KS值過高可能需要檢查模型是否過擬合暇务。以下為KS值對應的模型情況泼掠,
但此對應不是唯一的,只代表大致趨勢垦细。 - KS值<0.2,一般認為模型沒有區(qū)分能力择镇。
- KS值[0.2,0.3],模型具有一定區(qū)分能力,勉強可以接受
- KS值[0.3,0.5],模型具有較強的區(qū)分能力括改。
- KS值大于0.75腻豌,往往表示模型有異常。