Ускорение работы pipeline
Время работы pipeline зависит от размера входных данных и количества кандидатов признаков. Чтобы ускорить расчёт, уменьшайте пространство поиска постепенно и сравнивайте качество результата после каждого изменения.
Уменьшите глубину масок
В one_to_many_pipeline() число колонок в одном условии задаётся через
DerivedColumnsConfig.max_condition_columns.
Чем больше значение, тем больше
комбинаций проверяет pipeline. Чтобы полностью отключить условные признаки,
передайте conditions=False;
обычные агрегаты без фильтрации сохранятся.
from featminer import DerivedColumnsConfig
derived_columns = DerivedColumnsConfig(
conditions=True,
max_condition_columns=1,
)
В one_to_all_pipeline() для той же цели пока используется отдельный
параметр
max_filter_conditions.
Описание параметра:
Ограничьте конкатенацию категориальных колонок
В one_to_all_pipeline() параметр
max_categorical_concat_columns
задаёт максимальное число категориальных колонок в одной комбинации. Снижение
значения уменьшает количество проверяемых сочетаний и ускоряет генерацию.
Описание max_categorical_concat_columns.
Выбор конкретных формул
Параметр formulas
принимает готовый набор "basic", "advanced" или "all". Если нужно
запустить только конкретные формулы, передайте последовательность классов.
from featminer.formulas.one_to_many import Count, Mean
from featminer import one_to_many_pipeline
features = one_to_many_pipeline(
df=transactions,
aggregation_key="client_id",
target_col="is_bad",
cat_features=["product_code"],
formulas=[Count, Mean],
)
Проверяйте результат
Ускорение достигается за счёт сокращения пространства поиска. После изменения настроек сравните число отобранных признаков, их AUC, PSI и NullsRate, а также качество итоговой модели на отложенной выборке.