Python变量分箱–woe值单调分箱

  • Post author:
  • Post category:python


最近上传了一个变量分箱的方法到pypi,这个包主要有以下说明:

  1. 缺失值单独一箱,不论缺失的数量多少;
  2. 生成的分箱woe值是单调的,后续有时间会迭代U型分箱的版本;
  3. 会有分箱最小样本数占比,类似决策树的最小叶节点占比;
  4. 分箱成功的变量才会保留,有可能失败的情况是找不出同时满足上述2和3的分箱;
  5. 增加了多进程,提升分箱速度
  6. 除了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 版权协议,转载请附上原文出处链接和本声明。