金融信貸風控(二)——資料預處理和特徵衍生
阿新 • • 發佈:2019-02-07
申請評分卡中的資料預處理和特徵衍生
構建信用風險型別的特徵
資料預處理
1、資料預處理
包括格式、缺失值的處理等。
缺失值包括如下幾種情況:
1、完全隨機缺失
2、隨機缺失
3、完全非隨機缺失:與變數本身有關,比如富裕家庭不願意填收入
處理缺失值的方法:
1、補缺(平均值,眾數、中位數等)
2、作為一種狀態(一般為完全非隨機缺失)
3、刪除記錄或者變數。
2. 特徵構建:人工構建特徵或者學習特徵
常用的特徵衍生:
計數:過去一年貸款的次數 求和:過去一年內網店的消費總額 比例:貸款申請額度和年收入的佔比 時間差:第一次開戶距今時長 波動率:過去3年內每份工作的時間的標準差
3. 特徵選擇:相關性、差異性、顯著性
4. 模型引數估計
特徵的分箱
分箱的定義 |
|
分箱的意義 |
|
分箱的限制 |
|
Best-KS
ChiMerge 卡方分箱法
卡方檢驗用於判別兩個變數之間是否有顯著的關聯關係,原假設為兩變數相互獨立,可參看卡方檢驗.
閱讀資料:
最優分箱–卡方分箱Chi-Merge
卡方統計量衡量了區間內樣本的頻數分佈與整體樣本的頻數分佈的差異性。
#卡方分箱
import pandas as pd
import numpy as np
from scipy.stats import chi
WOE編碼
WOE表示的實際上是“當前分組中響應客戶佔所有響應客戶的比例”和“當前分組中沒有響應的客戶佔所有沒有響應的客戶的比例”的差異。可以直觀的認為woe蘊含了自變數取值對於目標變數(違約概率)的影響。
將上述公式做一些變換:
WOE也可以這麼理解,他表示的是當前這個組中響應的客戶和未響應客戶的比值,和所有樣本中這個比值的差異。這個差異是用這兩個比值的比值,再取對數來表示的。WOE越大,這種差異越大,這個分組裡的樣本響應的可能性就越大,WOE越小,差異越小,這個分組裡的樣本響應的可能性就越小。
WOE編碼的意義
1、符號與好壞樣本的比例有關
2、要求迴歸係數為負(當好樣本佔比在分子上,壞樣本佔比在分母上時)
變數篩選
變數篩選的方法有:
- 帶約束:LASSO
- 特徵重要性:隨機森林
- 特徵資訊度:information value
- 模型擬合優度和複雜度:基於AIC的逐步迴歸
特徵資訊度
我們可以看到IV值其實是woe值加權求和。這個加權主要是消除掉各分組中數量差異帶來的誤差。
def CalcWOE(df, col, target):
'''
:param df: 包含需要計算WOE的變數和目標變數
:param col: 需要計算WOE、IV的變數,必須是分箱後的變數,或者不需要分箱的類別型變數
:param target: 目標變數,0、1表示好、壞
:return: 返回WOE和IV
'''
total = df.groupby([col])[target].count()
total = pd.DataFrame({'total': total})
bad = df.groupby([col])[target].sum()
bad = pd.DataFrame({'bad': bad})
regroup = total.merge(bad, left_index=True, right_index=True, how='left')
regroup.reset_index(level=0, inplace=True)
N = sum(regroup['total'])
B = sum(regroup['bad'])
regroup['good'] = regroup['total'] - regroup['bad']
G = N - B
regroup['bad_pcnt'] = regroup['bad'].map(lambda x: x*1.0/B)
regroup['good_pcnt'] = regroup['good'].map(lambda x: x * 1.0 / G)
regroup['WOE'] = regroup.apply(lambda x: np.log(x.good_pcnt*1.0/x.bad_pcnt),axis = 1)
WOE_dict = regroup[[col,'WOE']].set_index(col).to_dict(orient='index')
for k, v in WOE_dict.items():
WOE_dict[k] = v['WOE']
IV = regroup.apply(lambda x: (x.good_pcnt-x.bad_pcnt)*np.log(x.good_pcnt*1.0/x.bad_pcnt),axis = 1)
IV = sum(IV)
return {"WOE": WOE_dict, 'IV':IV}
單變數分析和多變數分析
單變數分析
多變數分析
多重共線性