老饼讲解:一步一步上手学习
在使用bbbrisk构建评分卡时,往往会有各种疑问,这里我们统一给出一些答疑。
我们知道,在训练逻辑回归时,是以逐步回归的方式(逐个添加变量)来进行训练,如果添加变量的效果不明显,就会停止添加变量。如果想让变量更多一些,那么可以将"效果阈值"调低一些,如下:
logit_model,card = br.model.scoreCard(x,y,bin_sets,train_param={'select_tol':0.005})当AUC提升比小于select_tol(默认值0.005)时,就会停止训练,如果把它设得更小(例如0.001),就会添加更多的变量进来,极端地,当select_tol设为0时,所有变量都会添加进来。
--------------------------------------------
全自动分箱函数为autoBins(x,y,enum_var=['city','marital']),它默认采用的是卡方分箱,但它预留了处理单个变量分箱时所采用的函数接口one_fcn,如果要采用其它分箱,重新实现一下one_fcn就可以了,如下:
import bbbrisk as br
# 定义单个变量的自动分箱处理函数
def one_fcn(x,y,is_enum):
if(is_enum==True): # 如果是枚举值
bin_set = br.bins.merge.ksEnum(x, y) # 使用卡方枚举分箱
else: # 如果是连续变量
bin_set= br.bins.merge.ks(x, y) # 使用卡方分箱
return bin_set
# 在autoBins中使用自定义的分箱函数
data = br.datasets.load_bloan() # 加载数据
x,y = data.iloc[:,:-1],data['is_bad'] # 样本变量与标签
bin_sets = br.bins.batch.autoBins(x,y,enum_var=['city','marital'],one_fcn=one_fcn) # 自动分箱如代码所示,定义了one_fcn后,autoBins对每个变量进行自动分箱时,就会调用one_fcn函数,如果按上面代码来修改,那么autoBins最终就会采用ks分箱来进行自动分箱。
好了,大家遇到什么问题,可以先阅读一下bbbrisk的API说明,如果还有疑问不知道怎么处理,那么就在评论里进行提问就可以了,会集中向大家及时答疑。
评论