最近上傳了乙個變數分箱的方法到pypi,這個包主要有以下說明:
缺失值單獨一箱,不論缺失的數量多少;
生成的分箱woe值是單調的,後續有時間會迭代u型分箱的版本;
會有分箱最小樣本數佔比,類似決策樹的最小葉節點佔比;
分箱成功的變數才會保留,有可能失敗的情況是找不出同時滿足上述2和3的分箱;
增加了多程序,提公升分箱速度
除了iv以外,增加變數切分的其他演算法:alg_method = 『iv』 , 『gini』和』entropy』
具體的變數分箱原理見之前的部落格。
可以通過pip install woe-bin 安裝。最新版本1.0.2
應用範例如下:
1、連續變數:
from woe_bin import woe_bin
wb = woe_bin(indata=dtrain, target=
'target'
, min_group_rate=
0.05
, max_bin=
6, bin_method=
'mono'
, alg_method=
'iv'
)mapiv = wb.split_data(
)mapiv1 = mapiv[mapiv[
'iv'
]>=
0.02
]#轉為woe格式
2、類別變數:from woe_bin import woe_bin
wb = woe_bin(indata=dtrain, target=
'target'
, min_group_rate=
0.05
, max_bin=6)
cate_mapiv, cate_mapdict = wb.split_data_cate(
)
cate_mapiv:記錄類別變數初始替換成woe後,連續變數的分箱
cate_mapdict: 記錄類別變數原值與最終woe的對映
對類別變數的分箱只是做為參考,最終還是要根據業務來調整下分箱。
使用決策樹分箱計算woe和iv值例項
使用信用卡預期資料 kaggle案例的訓練資料 give me some credit 目標變數為seriousdlqin2yrs 表示未來是否為逾期90天 1表示逾期90天 即通常意義上的壞客戶,0則表示沒有逾期90天 的好客戶。import numpy as np import pandas a...
python機器學習 IV值 WOE值的計算
評分卡模型中的iv和woe詳解 看完後,一定要注意 iv衡量的是某乙個變數的資訊量,從公式來看的話,相當於是自變數woe值的乙個加權求和,其值的大小決定了自變數對於目標變數的影響程度,對於分組 i 其對應的iv值參考下圖,其中n是分組個數,注意,在變數的任何分組中,不應該出現響應數為0或非響應數字0...
python 基於卡方值分箱演算法
原理很簡單,初始分20箱或更多,先確保每箱中都含有0,1標籤,對不包含0,1標籤的箱向前合併,計算各箱卡方值,對卡方值最小的箱向後合併,如下 import pandas as pd import numpy as np import scipy from scipy import stats def...