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

【说明】函数说明-bins.batch.autoBins

作者 : 老饼 发表日期 : 2026-03-21 01:06:09 更新日期 : 2026-05-13 00:50:06
老饼讲解-简单易懂,干货满满,爽过嗦螺!


API说明:bins.batch.autoBins - 批量自动分箱

一、函数说明

bins.batch.autoBins用于将变量进行自动分箱。

完整调用格式如下:

 bin_sets = bins.batch.autoBins(x,y,enum_var=[],one_fcn=None)
  • 入参说明

x:需要进行分箱的变量。

         数据类型:pandas.DataFrame

y:样本标签,0为好,1为坏。

         数据类型:单列pandas.core.series

enum_var:x中枚举变量的名称列表。

     数据类型:list

one_fcn:单个变量的自动分箱处理函数,默认为None,即使用bbbrisk自带的默认处理方法(卡方分箱)。

     数据类型:function

由于枚举与连续变量的自动分箱方法不一样,因此如果有枚举变量,必须指出哪些是枚举变量。
  • 出参说明

bin_sets:所有变量的分箱配置结果

     数据类型:dict

二、函数示例

autoBins使用示例如下

  • 示例一:自动分箱的使用
import  bbbrisk  as br
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'])  # 自动分箱,有枚举时要指出哪些是枚举变量
print('\n* 自动分箱的结果:\n',bin_sets)                              # 打印阈结果

运行结果如下:

自动分箱的结果

  • 示例二:如何自定义自动分箱函数

one_fcn不设置时,则本函数底层使用的是如下的处理函数:

def _autoBinOne(x,y,is_enum):
    if(is_enum==True):                                    # 如果是枚举值
        bin_set = merge.chi2Enum(x, y)                    # 使用卡方枚举分箱
    else:                                                 # 如果是连续变量
        bin_set= merge.chi2(x, y)                         # 使用卡方分箱
    return bin_set

可以看到,当one_fcn=None时,使用的是卡方分箱来进行分箱,因此,如果想自行设置分箱处理函数,则可以自写一个函数来处理,示例如下:

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)  # 自动分箱
print('\n* 自动分箱的结果:\n',bin_sets)                                             # 打印结果

运行结果如下:

自定义自动分箱函数的效果


好了,以上就是bins.autoBins函数的使用方法了~



图标 评论
添加评论