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

Проверка данных

catboost_utils.validation запускает быстрые проверки данных и возвращает отчёт со списком проблем и предупреждений.

from catboost_utils import validate

report = validate(
    X, y,
    cat_features=["city"],
    eval_set=(X_val, y_val),
    model_params={"task_type": "GPU"},
)
report.ok           # True, если блокирующих проблем нет
report.issues       # список блокирующих проблем
report.warnings     # список предупреждений
report.raise_if_failed()

Блокирующие проблемы

  • пустой DataFrame
  • таргет содержит NaN или одно уникальное значение
  • категориальная колонка имеет тип float
  • в object-колонке есть NaN, и она не указана как категориальная
  • в числовой колонке есть inf или -inf

Предупреждения

  • колонка типа object, category, string или bool не указана в cat_features
  • целочисленная колонка имеет мало уникальных значений (вероятно, она категориальная)
  • больше 50% значений в колонке — пропуски
  • колонка состоит из одного значения
  • колонка имеет тип datetime или timedelta
  • набор колонок в обучающей и валидационной выборках не совпадает
  • одновременно заданы class_weights и auto_class_weights
  • task_type='GPU' или thread_count > 1 — результаты не будут битово воспроизводимыми

catboost_utils.validation.runner.validate

validate(
    X: DataFrame,
    y: Series | None = None,
    *,
    cat_features: list[str | int] | None = None,
    eval_set: tuple[DataFrame, Any] | None = None,
    model_params: dict[str, Any] | None = None,
) -> ValidationReport

Run pre-flight checks against a training DataFrame.

Parameters:

Name Type Description Default
X DataFrame

feature DataFrame (a catboost.Pool raises NotImplementedError).

required
y Series | None

target series. Optional — when None, target checks are skipped.

None
cat_features list[str | int] | None

list of categorical column names or positional indices.

None
eval_set tuple[DataFrame, Any] | None

optional (X_eval, y_eval) tuple — checks column alignment.

None
model_params dict[str, Any] | None

optional dict of CatBoost params for cross-cutting warnings (class_weights conflict, GPU / multi-thread reproducibility).

None

Returns:

Type Description
ValidationReport

ValidationReport with ok, issues, warnings.

Raises:

Type Description
NotImplementedError

when X is a catboost.Pool.

TypeError

when X is not a DataFrame.

catboost_utils.validation.models.ValidationReport

Bases: BaseModel

Full result of validate().

raise_if_failed

raise_if_failed() -> None

Raise ValidationError if there are any blocking issues.

catboost_utils.validation.models.ValidationIssue

Bases: BaseModel

Blocking problem — training will (almost certainly) fail.

catboost_utils.validation.models.ValidationWarning

Bases: BaseModel

Non-blocking concern — training proceeds but the user should be aware.