【问题标题】:how can i call optbinning module get results of all varible binning我如何调用 optbinning 模块获取所有变量分箱的结果
【发布时间】:2020-05-27 04:01:41
【问题描述】:

现在我使用 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】:

    要计算数据集中所有变量的最佳分箱,您可以使用 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()
    

    【讨论】:

    • 请避免发布链接作为解决方案。这些链接可能会随着时间的推移而消失。最好直接在答案中发布可重现的解决方案。
    • 很高兴知道这个包。将尝试使用它来解决我的问题。但是,我有一个快速的问题。当本论坛中的大多数帖子都建议不要对连续变量进行分箱时,我可以与您核实一下您为什么认为/如何分箱有用吗?由于您是此软件包的创建者,因此我觉得了解您对此的看法会很有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多