最近上传了一个变量分箱的方法到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格式
w_tab = wb.apply_woetab(dtrain, mapiv1)
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_woetab = wb.apply_woetab_cate(dtrain, cate_mapdict)
cate_mapiv:记录类别变量初始替换成woe后,连续变量的分箱
cate_mapdict: 记录类别变量原值与最终woe的映射
对类别变量的分箱只是做为参考,最终还是要根据业务来调整下分箱。
版权声明:本文为jin_tmac原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。