bbbrisk-api说明

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

作者 : 老饼 发表日期 : 2022-11-19 03:56:32 更新日期 : 2025-04-13 23:56:52
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com




bins.batch.autoBins - 批量自动分箱函数

一、函数说明

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

完整调用格式如下:

 bin_sets = bins.batch.autoBins(x,y,enum_var=[],one_fcn=None)

1. 入参说明

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

         数据类型:pandas.DataFrame

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

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

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

     数据类型:list

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

     数据类型:function


备注:由于枚举变量与连续数值变量的自动分箱方法不一样,因此如果有枚举变量,必须指出哪些是枚举变量


2. 出参说明

  • 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函数的使用方法了~








 End 





内容纠正