從中國農業銀行「雅典娜杯」數據挖掘大賽看金融行業數據分析與建模方法

【說在前面】本人博客新手一枚,象牙塔的老白,職業場的小白。如下內容僅爲我的看法,歡迎批評指正,不喜勿噴![握手][握手]
【再囉嗦一下】若是你對數據挖掘感興趣,歡迎先瀏覽個人另外一篇隨筆:數據挖掘比賽/項目全流程介紹
【再囉嗦一下】若是你對金融科技感興趣,歡迎瀏覽個人另外一篇隨筆:若是你想了解金融科技,不妨先了解金融科技有哪些可能?
【最後再說一下】本文結合了博主、內部賽優秀團隊以及外部賽冠/亞/季軍的方案分享!html

如何進行金融行業數據分析與建模,是挖掘金融行業數據價值的重要手段。金融行業數據分析與建模方法主要包括七個重要環節,每一個環節緊密相連。
python

1. 賽題介紹

1.1 賽題名稱

貸款風險預測(逾期還款分三種狀況:要麼用戶不肯意還款、要麼沒有錢還款、要麼忘了還款)面試

1.2 問題描述

根據數據集中8萬用戶的相關信息,預測用戶將來是否會逾期還款。算法

1.3 提供數據

用戶基本信息、銀行卡流水、信用卡帳單信息以及用戶行爲數據,字段內容均爲脫敏數據。機器學習

1.4 評估指標

Kolmogorov-Smirnov(KS)是風險評分領域經常使用的評估指標,反應模型對正負樣本的辨識能力,KS越高代表模型對正負樣本的辨識能力越強。
KS = max { | f(s|P) - f(s|N) | }
其中,f(s|P) 爲正樣本預測值的累計分佈函數,f(s|N) 爲負樣本在預測值上的累計分佈函數。
函數

2. 數據探索

經過數據可視化查看數據樣本的分佈以及特徵的統計規律。學習

  • 正/負樣本比例1:4(應該是人工採樣過,實際業務中逾期樣本比例不多)
  • 訓練集/測試集樣本比例6w:8k
  • ......

3. 數據預處理

主要包括數據的缺失值處理、異常值處理、拼接、去重等基本處理。同時,還有匯率轉換和單位淨值*份額等基本數據操做。測試

4. 特徵工程

4.1 基本特徵

根據類別型和數值型數據在標籤上的分佈進行預處理,包括標準化、歸一化、離散化、平滑化、one-hot編碼等。優化

4.2 時序變化特徵

  • 銀行卡流水:計算用戶在全局、特定條件下(交易類型,非工資收入/工資收入,支出/收入)的金額和時間的統計特徵(sum/count/mean/median/std/min/max)
  • 信用卡帳單:計算用戶在全局、特定條件下(銀行標識,還款狀態)的金額(上期帳單金額,上期還款金額,本期帳單餘額,信用卡額度)和帳單時間戳的統計信息
  • 瀏覽行爲:計算用戶天天每種行爲類型/子類型的count、瀏覽行爲數和瀏覽時間的統計信息
  • 日期的轉換:根據上半年/下半年、季度、月份等時間維度,提取大量可能的日期特徵衍生
  • 滑動窗口處理:根據不一樣時間區間(近一個月、近兩個月等),計算用戶對應的銀行流水、信用卡帳單、瀏覽行爲的基礎特徵/統計特徵
  • 屏蔽採樣時間差別的特徵:取前五條和最後五條處理等
  • ......

4.3 交叉特徵

  • 除法:例如某瀏覽行爲類型佔總瀏覽的比例、工資收入/非工資收入等
  • 減法:最大時間戳-最小時間戳(表示某種行爲的時間跨度)等
  • 拼接:例如行爲類型-子類型1/2,拼接後計算特徵等
  • 用戶的我的信息之間的交叉特徵衍生
  • ......

4.4 業務理解特徵

  • 上期未還款金額 = 上期帳單金額 - 上期還款金額
  • 相鄰兩期帳單金額差 = 本期帳單餘額 - 上期帳單金額
  • if 上期帳單金額 > 信用卡額度,爆卡 = 1 else 爆卡 = 0
  • if 上期還款金額 < 上期帳單金額,未足額還款 = 1 else 未足額還款 = 0
  • 缺失副表的數量
  • ......

5. 特徵選擇

  • 刪除相關性高的特徵(例如取閾值0.98)
  • 使用低成本特徵選擇算子,過濾掉不重要的特徵(例如取50%)
  • 使用預訓練的lightgbm模型得到特徵重要性(例如取top3500)

6. 模型選擇及調參

  • 通過實驗選擇了lightgbm模型
  • 使用網格搜索/貝葉斯優化對其進行調參(調整葉子節點數、最大深度、行/列採樣比例、正則項係數等)
  • 經過KS指標/自定義評價函數,經過交叉驗證,獲取較爲準確的模型迭代輪次

7. 模型融合

  • bagging
  • stacking
  • ......

若是你對金融科技感興趣,歡迎瀏覽個人另外一篇博客:若是你想了解金融科技,不妨先了解金融科技有哪些可能?
若是您對數據挖掘感興趣,歡迎瀏覽個人另外一篇博客:數據挖掘比賽/項目全流程介紹
若是你對智能推薦感興趣,歡迎先瀏覽個人另外一篇隨筆:智能推薦算法演變及學習筆記
若是您對人工智能算法感興趣,歡迎瀏覽個人另外一篇博客:人工智能新手入門學習路線和學習資源合集(含AI綜述/python/機器學習/深度學習/tensorflow)
若是你是計算機專業的應屆畢業生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的應屆生,你如何準備求職面試?
若是你是計算機專業的本科生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的本科生,你能夠選擇學習什麼?
若是你是計算機專業的研究生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的研究生,你能夠選擇學習什麼?
以後博主將持續分享各大算法的學習思路和學習筆記:hello world: 個人博客寫做思路編碼

相關文章
相關標籤/搜索