
信用卡通不過?用數(shù)據(jù)分析技術(shù),帶你深度解析信用卡評分體系
隨著互聯(lián)網(wǎng)金融時代的到來,信用評分體系顯得越發(fā)重要,本文就解讀信用卡評分體系是如何建立的。
客戶信息涉及到很多因素,因此許多因素無法在機器學習模型中進行探討,這里收集了大部分互聯(lián)網(wǎng)金融公司在信用卡申請時能獲取到的信息。
目標
1. 使用機器學習構(gòu)建信用卡評分模型,獲得自變量分箱結(jié)果;
2. 并由評分模型得出最優(yōu)的cutoff值,并對模型進行評價;
3. 再由新的樣本集對評分卡進行測試,輸出預測結(jié)果。
數(shù)據(jù)
我使用了Kaggle的兩個數(shù)據(jù)集。
Kaggle數(shù)據(jù)集鏈接:
https://www.kaggle.com/yuzijuan/credit-card-scoring/data
環(huán)境和工具:
Rstudio,plyr,rJava,smbinning,prettyR
我首先對兩個數(shù)據(jù)集進行探索性分析,剔除掉無法納入模型的變量,例如ID,取值為空的變量,取值僅為一類的變量等;再探索配偶收入變量問題時,由于值絕大部分為0,將該變量變?yōu)槎诸愖兞?,取值為有收入與無收入;針對異常值過大的變量,采用蓋帽法,用99分位點值代替極大異常值,有1分位點值代替極小異常值等等方法,數(shù)據(jù)清洗完后,再用smbinning包進行cart分箱,帶入評分卡模型,獲得評分卡,最后將其運用到測試集上。
開始
首先,導入必要的庫和數(shù)據(jù)集,進行探索性數(shù)據(jù)分析,并剔除掉無法納入模型的變量。
導入庫
導入數(shù)據(jù)
剔除無法納入模型的變量
由于評分卡模型一般分數(shù)越高,表示信用越好,故需要將信用好的類別得分記為1,信用不好的類別得分記為0。
為更有效分箱,獲取了因子型變量集factorval和數(shù)值型變量集numericval,分別進行分箱處理。
數(shù)值型變量分箱
為更有效進行數(shù)據(jù)處理,對異常值可以進行蓋帽法處理,代碼如下:
以年齡數(shù)值型變量舉例說明,首先查看數(shù)據(jù)分布情況,由于是因變量為二分類,自變量為數(shù)值型,用t檢驗來檢驗兩分布是否有顯著性差別,有顯著性差別才能進行分箱,否則分箱結(jié)果無意義。
分布情況如上圖所示,可以對其進行蓋帽法后再t檢驗和分箱處理。t檢驗的原假設為兩分類組的均值相等,結(jié)果表明原假設被拒絕,認為兩分布具有顯著性差別,可以進行分箱。
用的是smbinning包,這個包中采用的是CART回歸樹進行屬性劃分,數(shù)值型用函數(shù)smbinning(),由樹的結(jié)果可知,劃分點為19,22,32,37,46、59六個值,劃分為7個屬性區(qū)間。
AGE的IV值為0.2004,對AGE的WOE值畫圖,得到分布呈現(xiàn)單調(diào)趨勢,表明分箱結(jié)果良好,可以納入模型。
用AGE進行分箱的代碼如下:
類推其他連續(xù)變量。通過調(diào)用numericalval可知共有7個數(shù)值型變量,由于兩個數(shù)值型變量取值過于集中,后續(xù)將作為分類變量處理,故得到5個變量的IV值。
因子型變量分箱
以性別分類變量舉例說明,首先對性別變量中的異常值進行處理,這種類別變量一般將異常值歸為多數(shù)這類。查看分布情況可知女性的守信情況似乎比男性好一些。性別變量的WOE值區(qū)分得也很明顯。
在進行分箱之前同數(shù)值型變量一樣,要檢驗兩分布是否有顯著性差別,由于因變量和自變量均為分類變量,故用卡方檢驗。原假設為兩分布之間無顯著性差別,卡方檢驗結(jié)果表明拒絕原假設,認為兩樣本有顯著性差別,可以進行分箱。
分類變量分箱也采用的是smbinning包,不過smbinning包中就是用原分類值進行屬性劃分,未對劃分屬性處理,分類變量用的函數(shù)是smbinning.factor(),最后得到SEX的IV值為0.0274。具體執(zhí)行代碼如下:
再以配偶收入舉例說明,這個變量原本是數(shù)值型變量,由于取值過于集中到0,故將該變量轉(zhuǎn)化為分類型變量再處理,處理方式是將取值為0的作為無收入,將取值大于0的作為有收入。
得到混淆矩陣可以看出,有收入的似乎比無收入的守信情況好一些,WOE圖的區(qū)別也較為明顯。
通過卡方檢驗也可以看出,是否有收入對信用好否有顯著性影響,可以進行分箱操作。最后分箱得到IV值為0.0206。具體代碼如下:
類推到其他因子型變量,計算出得到所有變量的IV值,存入creditivs中。
建立評分卡
得到所有可分箱變量的IV值,一般認為IV值大于等于0.02的對構(gòu)建評分卡具有一定的幫助,故以0.02為分界點得到滿足條件的變量。最后納入評分卡模型的變量分別是年齡、工作時長(月)、個人收入、性別、婚姻狀態(tài)、是否有自用手機、配偶是否有收入。
最后7個自變量的IV值的分布情況如下,可以看到年齡、婚姻狀態(tài)、工作時長、是否有自用手機這幾個變量的IV值較大,表明這幾個變量對預測結(jié)果影響較大。
數(shù)值型分箱變量用函數(shù)smbinning.gen(),因子型變量用函數(shù)smbinning.factor.gen(),可以生成分箱后的結(jié)果,分箱后生成的新列并因變量得到data2數(shù)據(jù)集,通過邏輯回歸,建立評分卡模型。通過邏輯回歸結(jié)果可以看出分箱后的變量都較為顯著,表示分箱結(jié)果優(yōu)良。
生成評分卡是用函數(shù)smbinning.scaling(),通過調(diào)節(jié)pdo,score,odds三個參數(shù),使得評分卡最大值與最小值位于一個較好的范圍。這里評分卡的區(qū)間為(389,888)。
最后保存為新的csv文件,評分卡就做好了。具體代碼如下:
評分卡展示如下,points表示為評分卡的分值。如年齡在45歲的客戶,得分為166分。
最后,你總得告訴領(lǐng)導或者同事,到底大于等于多少時,我們認為是好客戶,這時還有最后一步,就是求cutoff值,將訓練數(shù)據(jù)通過函數(shù)smbinning.scoring.gen()可以得到客戶的得分,由于訓練數(shù)據(jù)本身有是否違約這個變量,那么cutoff值有兩種選擇方式,第一種基于業(yè)務發(fā)展現(xiàn)狀,即公司是需要盈利增收,還是公司需要控制風險,然后商議討論選擇一個cutoff值。下圖為客戶得分與客戶違約的箱體圖,1表示好客戶,0表示壞客戶,可以看出好客戶的得分值會高于壞客戶的得分值。
對客戶得分與客戶違約做t檢驗,檢驗結(jié)果表明,兩分布具備顯著性差別,可以認為好客戶和壞客戶的得分會有顯著性差別。壞客戶的得分集中在578分附近,好客戶得分集中于620分附近。
第二種獲得cutoff值的方式就是電腦自動計算最優(yōu)cutoff值,用的函數(shù)smbinning.metrics(),從輸出的報告可以看出,最優(yōu)cutoff值為615,這樣劃分的話,ROC曲線的AUC值為0.657,不算特別優(yōu)良,準確率(precision)達到87.8%。
具體執(zhí)行代碼如下:
預測
針對新樣本,我選擇用Excel工具獲得信用評分,使用VLOOKUP函數(shù)可以很方便地得到想要的數(shù)據(jù),評分展示如下,選擇cutoff值為615,這里認為(600,620)的客戶為關(guān)注客戶,信用情況中等,620分以上的客戶信用情況良好,600分以下的客戶信用情況堪憂。
分別用!、√、×來表示中等、優(yōu)良、較差的信用情況。
結(jié)語
本案例不足之處在于:
1. 未對職業(yè)代碼、商店等級代碼等信息進行提煉,可能會忽略掉一些有可能對模型有影響的變量。
2. Smbinning包在數(shù)值型變量分箱這一塊很強大,但是對分類變量分箱結(jié)果不太盡如人意,可以考慮其他分箱方法。
3. 可以整合更多模型,從而提高預測準確率。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預期算子的內(nèi)涵、作用與應用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應用 在數(shù)據(jù)分析與統(tǒng)計學領(lǐng)域,假設檢驗是驗證研究假設、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務系統(tǒng)落地過程中,“業(yè)務邏輯” 是連接 “需求設計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10