metrics_slices

MAE нашего CatBoost-ансамбля в срезах cohort/class/hour, в формате Шелестова.

Важно про честность: финальные catboost_seed*.cbm обучены на train+test (для сабмита на validate), поэтому прямая оценка на train/test даёт leakage-число. Здесь используем OOF-предикты proxy K-fold (5 фолдов блоками по 30 мин + tr_id, как устроен validate) — они получены моделями, которые ТЕСТОВЫЕ точки не видели. Это матчит «честный» proxy_mae из train_catboost.py –eval.

Формат выхода statistics/tables/model_metrics.csv:

split,dimension,group,points,mae_model_s

Тот же ключ (split,dimension,group) что и в baseline_metrics.csv — Шелестов делает join и получает MAE модели рядом с baseline.

Запуск:

python ml/src/metrics_slices.py \
    --labels ./dataset/labels \
    --artifacts ml/artifacts \
    --out statistics/tables/model_metrics.csv

Functions

main()

oof_predictions(data, feats, params[, k, ...])

OOF предикт proxy K-fold: клоны в обучении, реальные точки — в отложенных фолдах.

slice_metrics(split, meta)

metrics_slices.main() → None[исходный код]
metrics_slices.oof_predictions(data: dict, feats: list[str], params: dict, k: int = 5, block_min: int = 30, seeds=(0,), w_syn: float = 1.0) → pandas.Series[исходный код]

OOF предикт proxy K-fold: клоны в обучении, реальные точки — в отложенных фолдах.

metrics_slices.slice_metrics(split: str, meta: pandas.DataFrame) → pandas.DataFrame[исходный код]