天天看点

OptBinning 特征分箱包使用介绍OptBinning 特征分箱包使用介绍

OptBinning 特征分箱包使用介绍

OptBinning:支持数值型和分类型的最大IV分箱,并可保证分箱单调性,同事方便处理缺失值。作为一个分箱包还是挺好用,这里简答介绍了这个包中OptimalBinning和fit_transform的参数。

1、使用案例

import pandas as pd 
from sklearn.datasets import load_breast_cancer
# 数据准备
data = load_breast_cancer()
df = pd.DataFrame(data.data, columns=data.feature_names)
variable = "mean radius"
x = df[variable].values
y = data.target
from optbinning import OptimalBinning
optb = OptimalBinning(name=variable, dtype="numerical", solver="cp",max_n_bins=5) # 通过设置参数建立分箱器
w =  optb.fit_transform(x,y,metric='indices')  # 通过设置参数进行分箱
optb.binning_table.build()  # 展示分箱结果 
           
Bin Count Count (%) Non-event Event Event rate WoE IV JS
(-inf, 12.33) 197 0.346221 6 191 0.969543 -2.939364 1.489412 0.139117
1 [12.33, 13.09) 68 0.119508 7 61 0.897059 -1.643814 0.226599 0.025513
2 [13.09, 15.05) 132 0.231986 38 94 0.712121 -0.384559 0.032326 0.004016
3 [15.05, 16.93) 54 0.094903 44 10 0.185185 2.002754 0.359566 0.038678
4 [16.93, inf) 118 0.207381 117 1 0.008475 5.283323 2.900997 0.183436
5 Special 0.000000 0.000000 0.0 0.000000 0.000000
6 Missing 0.000000 0.000000 0.0 0.000000 0.000000
Totals 569 1.000000 212 357 0.627417 5.008900 0.390760
array([12.32999992, 13.09499979, 15.04500008, 16.92500019])
           
OptBinning 特征分箱包使用介绍OptBinning 特征分箱包使用介绍
(0.8667089477300354, 5.008900160240071, 0.7286216373341788)
           

2、OptimalBinning 构建分箱器参数介绍

变量名称、类型和默认值 解释 可选参数 说明
name : str, optional (default=“”) 变量名称 不重要
dtype : str, optional (default=“numerical”) 分箱类型 numerical;categorical numerical:数值型;categorical:分类型;
prebinning_method : str, optional (default="cart 分箱方法 cart;mdlp;quantile;uniform

cart:决策树;

mdlp:Minimum Description Length Principle ;

quantile:分位数,等频率uniform:等宽分箱

solver : str, optional (default=“cp”) 算子 cp;mip 不重要,一般按默认算子
divergence : str, optional (default=“iv”) 划分依据 iv;js;hellinger;triangular 求解最大化的指标,其他不了解,一般使用iv
min_n_bins 、max_n_bins: int or None, optional (default=None) 最小、最大分箱数量
min_bin_size、max_bin_size : float or None, optional (default=None) 最小、最大箱数据占比
min_bin_n_nonevent、max_bin_n_nonevent 、min_bin_n_event 、max_bin_n_event :nt or None, optional (default=None) 箱中响应和不响应最小(最大)数量
monotonic_trend: : str or None, optional (default=“auto”) 单调趋势 一般使用的有:ascending,descending,auto_asc_desc,peak,valley

ascending:单调递增;

descending:单调递减

auto_asc_desc:自动增减:

peak:先增后减

valley:先减后增

min_event_rate_diff : float, optional (default=0) 相隔分箱之间最小差距 only applies when

monotonic_trend

is “ascending”, “descending”, “peak_heuristic” or “valley_heuristic”.
user_splits_fixed 提前设定的分箱

3、optb.fit_transform 数据分箱参数介绍

变量名称、类型和默认值 解释 可选参数 说明
x : array-like, shape = (n_samples,) x
y : array-like, shape = (n_samples,) y
sample_weight : array-like of shape (n_samples,) (default=None) 样本权重
metric : str (default=“woe”) 编码方式 woe;event_rate;indices;bins

woe、event_rate:返回区间woe和rate;

indices:返回0,1,2,3;

bins:返回分箱区间;

metric_missing :loat or str (default=0) 缺失值编码 缺失值编码的值