我如何调用optbinning模块获取所有可变binning的结果

问题描述 投票:1回答:1

现在,我使用optbinning模块对所有逻辑回归建模变量进行分箱。但是optbinning模块只需要使用一个变量,例如

variable = "REGION_POPULATION_RELATIVE"
x = df[variable].values
y = df.TARGET.values
from optbinning import OptimalBinning
optb = OptimalBinning(name=variable, dtype="numerical", solver="ls", max_n_prebins=100,
                      min_prebin_size=0.001, time_limit=50)
optb.fit(x, y)

我如何使用循环获取所有变量的装箱结果?我尝试编码

variable_names = train_validation_valid_nonstring_nondatetype_categoryencoders.keys()
for i in variable_names:
    optb = OptimalBinning(name=i,dtype="numerical", solver="cp")
    optb.fit(x_category_encoders_target, y_category_encoders)

但出现错误“操作数无法与形状一起广播(52803,602)(52803,)”我得到包括数百个变量的数据框,如果一一计算,那将是一个巨大的项目。请帮助我,谢谢。

python python-3.x loops binning
1个回答
0
投票

要计算数据集中所有变量的最佳合并,可以使用BinningProcess类。

from optbinning import BinningProcess

binning_process = BinningProcess(variable_names=variable_names)
binning_process.fit(df[variable_names], df[target])

然后,您可以使用方法get_binned_variable检索每个变量或给定变量列表的信息。例如:

for variable in variable_names:
    optb = binning_process.get_binned_variable(name=variable)
    optb.binning_table.build()
    optb.binning_table.plot()
    optb.binning_table.analysis()
© www.soinside.com 2019 - 2024. All rights reserved.