目录
老饼讲解:一步一步上手学习

【答疑】评分卡-其它的常见答疑

作者 : 老饼 发表日期 : 2026-03-24 10:35:44 更新日期 : 2026-05-12 12:50:36
老饼讲解-简单易懂,干货满满,爽过嗦螺!


在使用bbbrisk构建评分卡时,往往会有各种疑问,这里我们统一给出一些答疑。

一、评分卡-bbbrisk-常见答疑

  • 问题1:评分卡训练后的有效变量太少,怎么让它多一些?

我们知道,在训练逻辑回归时,是以逐步回归的方式(逐个添加变量)来进行训练,如果添加变量的效果不明显,就会停止添加变量。如果想让变量更多一些,那么可以将"效果阈值"调低一些,如下:

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时,所有变量都会添加进来。

--------------------------------------------

  • 问题2:全自动建模时,自动分箱使用的是卡方分箱,如何设为其它自动分箱?

全自动分箱函数为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说明,如果还有疑问不知道怎么处理,那么就在评论里进行提问就可以了,会集中向大家及时答疑。



图标 评论
添加评论