как я могу вызвать модуль optbinning, чтобы получить результаты всех вариативных binning - PullRequest
1 голос
/ 27 мая 2020

Теперь я использую модуль optbinning для объединения всех logsti c переменных регрессионного моделирования. однако модуль 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)

как я могу использовать l oop, чтобы получить результат объединения для всех переменных? я пытаюсь кодировать

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,)» я получаю фрейм данных, включая сотни переменных, это будет огромный проект, если один по одному расчету. пожалуйста, помогите мне, спасибо.

1 Ответ

0 голосов
/ 07 июня 2020

Чтобы вычислить оптимальное объединение всех переменных в наборе данных, вы можете использовать класс 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()
...