kaggle信用違約預(yù)測大賽
作者:Mozart ?來源:教研團
編輯:學(xué)姐
賽題介紹

賽題任務(wù)
信用違約預(yù)測是管理消費貸款業(yè)務(wù)風(fēng)險的核心。信用違約預(yù)測允許貸方優(yōu)化貸款決策,從而帶來更好的客戶體驗和穩(wěn)健的商業(yè)經(jīng)濟。當前的模型可以幫助管理風(fēng)險。但是有可能創(chuàng)建更好的模型,這些模型的性能優(yōu)于當前使用的模型。美國運通是一家全球綜合支付公司。作為世界上最大的支付卡發(fā)行商,他們?yōu)榭蛻籼峁┴S富生活和建立商業(yè)成功的產(chǎn)品、見解和體驗。
在本次比賽中,您將運用機器學(xué)習(xí)技能來預(yù)測信用違約。具體來說,您將利用工業(yè)規(guī)模的數(shù)據(jù)集來構(gòu)建機器學(xué)習(xí)模型,以挑戰(zhàn)生產(chǎn)中的當前模型。訓(xùn)練、驗證和測試數(shù)據(jù)集包括時間序列行為數(shù)據(jù)和匿名客戶檔案信息。您可以自由探索任何技術(shù)來創(chuàng)建最強大的模型,從創(chuàng)建特征到在模型中以更有機的方式使用數(shù)據(jù)。
比賽鏈接:
https://www.kaggle.com/competitions/amex-default-prediction
評價指標
本次比賽的評估指標 ?? 是排名排序的兩個度量的平均值:歸一化基尼系數(shù) ?? 和 4% 的違約率 ??組成:

.
對于子指標 ?? 和 ??,負標簽的權(quán)重為 20 以調(diào)整下采樣。計算過程可以從這里找到
https://www.kaggle.com/code/inversion/amex-competition-metric-python
數(shù)據(jù)介紹
本次比賽的目的是根據(jù)客戶每月的客戶資料預(yù)測客戶未來不償還信用卡余額的概率。目標二元變量是通過觀察最近一次信用卡賬單后 18 個月的績效窗口來計算的,如果客戶在最近一次賬單日后的 120 天內(nèi)未支付到期金額,則將其視為違約事件。
該數(shù)據(jù)集包含每個客戶在每個報表日期的匯總配置文件特征。特征通過了匿名和歸一化處理,特征可以分為以下類別:
D_* = 拖欠變量
S_* = 支出變量
P_* = 付款變量
B_* = 平衡變量
R_* = 風(fēng)險變量
關(guān)注公眾號【學(xué)姐帶你玩AI】
后臺回復(fù)“數(shù)據(jù)挖掘”領(lǐng)取baseline
其中這些變量為類別變量:
?['B_30', 'B_38', 'D_114', 'D_116', 'D_117', 'D_120', 'D_126', 'D_63', 'D_64', 'D_66', 'D_68']
是為每個customer_ID預(yù)測未來付款違約的概率(目標 = 1),每個文件內(nèi)容的介紹如下:
train_data.csv - 每個 customer_ID 具有多個日期的訓(xùn)練數(shù)據(jù)
train_labels.csv - 每個 customer_ID 的目標標簽
test_data.csv - 對應(yīng)的測試數(shù)據(jù);您的目標是預(yù)測每個 customer_ID 的目標標簽
sample_submission.csv - 格式正確的示例提交文件
數(shù)據(jù)分析
首先我們來查看下數(shù)據(jù)集,在數(shù)據(jù)集中的數(shù)據(jù)字段基本進行了匿名處理:

在數(shù)據(jù)集中也有較多的字段包含了缺失值:

比賽標簽分布中違約用戶占比較少,類別分布比較均衡:

接下來我們可以查看字段按照分類之后的統(tǒng)計,如下圖所示:

進一步我們也可以統(tǒng)計字段與標簽的相關(guān)性:

解題要點
數(shù)據(jù)壓縮方法
由于數(shù)據(jù)集原始數(shù)據(jù)集文件較大(50GB左右),直接進行讀取并進行分析并不可取。在進行送入模型進行之前可以考慮對數(shù)據(jù)值進行壓縮,具體的壓縮方法包括:
?將數(shù)據(jù)集中的類別字段,使用Pandas的category進行代替;
?將數(shù)據(jù)集中的數(shù)值字段,使用flaoat16和float32代替原始的float64;
?將數(shù)據(jù)集使用feather或者parquet格式進行存儲;
通過上述方法可以將數(shù)據(jù)集壓縮到總共5GB左右,接下來就可以嘗試后續(xù)的建模過程。
數(shù)據(jù)集壓縮和轉(zhuǎn)換的過程可以參考:
https://www.kaggle.com/code/abdellatifsassioui/create-pickeld-data-from-50-gb-to-6gb
關(guān)注公眾號【學(xué)姐帶你玩AI】
后臺回復(fù)“數(shù)據(jù)挖掘”領(lǐng)取baseline
樹模型模型
本次賽題是一個典型的匿名結(jié)構(gòu)化比賽,因此可以考慮直接使用樹模型來進行建模,具體的步驟為:
?對數(shù)據(jù)集進行處理
?定義樹模型進行訓(xùn)練
?五折交叉完成預(yù)測
定義模型參數(shù):
模型多折交叉訓(xùn)練:
深度學(xué)習(xí)模型
由于本次比賽數(shù)據(jù)量比較多,因此深度學(xué)習(xí)模型也可以考慮。深度學(xué)習(xí)模型主要需要調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),下面是一個基礎(chǔ)的全連接網(wǎng)絡(luò)代碼:
關(guān)注公眾號【學(xué)姐帶你玩AI】
后臺回復(fù)“數(shù)據(jù)挖掘”領(lǐng)取baseline
上分路線
本次比賽是一個典型的匿名結(jié)構(gòu)化比賽,因此主要的關(guān)注點可以放在模型結(jié)構(gòu)和模型集成。
? 可以優(yōu)先調(diào)整每額每個模型,樹模型和深度學(xué)習(xí)模型都可以取得0.796左右的精度;
? 增加每個模型的隨機性,大量使用bagging進行訓(xùn)練;
點這里??關(guān)注我,記得標星哦~
