Перейти к содержанию

Pipeline

Готовые классы CatBoost со всеми возможностями catboost_utils.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from catboost_utils import CBXRegressor

pipe = Pipeline([
    ("scaler", StandardScaler()),
    ("model", CBXRegressor(iterations=100)),
])
pipe.fit(X, y)

Дополнительные параметры

  • auto_cat_features: bool = True — автоматически определяет категориальные колонки по типу данных в DataFrame (object, category, string, bool). Передайте False, чтобы выключить.
  • nan_fill: str | dict[str, str] | None = None — чем заполнять пропуски в категориальных колонках. Если строка — этим значением заполнятся все категориальные колонки. Если словарь — отдельно для каждой колонки. По умолчанию (None) — ничего не заполняется.
  • early_stopping: "auto" | None = None — при значении "auto" и переданном eval_set включает раннюю остановку с разумными значениями по умолчанию (od_type="Iter", od_wait=50, use_best_model=True). Если eval_set не передан, бросает CBXError с подсказкой.

Что протестировано

Работа в Pipeline, GridSearchCV, cross_val_score и clone(). Если на вход передан Pool, он передаётся в CatBoost как есть.

catboost_utils.pipeline.classifier.CBXClassifier

CBXClassifier(
    *,
    auto_cat_features: bool = True,
    nan_fill: NanFill = None,
    early_stopping: EarlyStopping = None,
    **catboost_params: Any,
)

Bases: _CBXMixin, CatBoostClassifier

CBX-enhanced CatBoostClassifier. See SPEC.md §Module 4.

catboost_utils.pipeline.regressor.CBXRegressor

CBXRegressor(
    *,
    auto_cat_features: bool = True,
    nan_fill: NanFill = None,
    early_stopping: EarlyStopping = None,
    **catboost_params: Any,
)

Bases: _CBXMixin, CatBoostRegressor

CBX-enhanced CatBoostRegressor. See SPEC.md §Module 4.