ML-модуль
Модуль ml/src/ содержит фичеинжиниринг, обучение CatBoost-ансамбля
и инференс-сервис на FastAPI.
Задача
Residual regression: цель —
target_delay_s - cur_dev_s.Такой сдвиг убирает лёгкий базовый прогноз «оставить текущее отклонение как есть» и заставляет модель учить именно поправку.
Итоговое предсказание собирается обратно:
pred_delay = cur_dev_s + pred_residual.Модель обучается на исторических рейсах с проставленными фактами прибытия.
Схема данных
train — исторический датасет рейсов с полной телеметрией и таргетами.
test — публичный тест соревнования (структура совпадает с train,
target_delay_sотсутствует).validate — внутренние сплиты (K-fold и holdout) поверх train.
labels —
target_delay_s(секунды, знаковая величина).
CatBoost-ансамбль
5 моделей CatBoost, обученных с разными seed-ами (0..4).
Итоговое предсказание — среднее по ансамблю.
Есть отдельный «no-route» набор моделей (
catboost_noroute_seed*), используется когда категориальные признаки маршрута считаются нестабильными (LOVO / новые маршруты).Полный список из 56 фичей — константа
FEATURESвfeatures.tabular(см. такжеml/artifacts/bench_latency.json).Основные группы фичей:
плановые:
plan_gap_prev_s,plan_route_dist_m,plan_speed_kmh, …GPS-агрегаты:
gps_med3,gps_med5,gps_max5,gps_slope, …динамика:
spd1,spd5,spd15,stop5,spd_trend, …геометрия:
dist_tgt_m,dist_next_stop_m,route_left_m, …ETA-подсказки:
eta_dev_s,eta_dev_moving_s,req_speed_kmh.временные:
hour,hour_sin,hour_cos.
Валидация
Proxy K-fold — разбиение по прокси-ключу (рейс/машина), быстрый цикл.
Holdout — фиксированный отложенный кусок для честной оценки.
LOVO (leave-one-vehicle-out) — устойчивость к новым транспортным средствам.
Разрезы качества (маршрут, час суток, хвост распределения) —
ml/src/metrics_slices.py.
Латентность
Из ml/artifacts/bench_latency.json (200 запусков, ансамбль из 5 моделей):
CatBoost (нативный формат): ~9.4 мс на сэмпл.
ONNX fp32: ~1.6 мс на сэмпл (продовый путь).
ONNX int8: пока не мерили.
Ссылки
README ML-модуля — команды запуска обучения и инференса.
inference_service— REST-сервис на FastAPI.train_catboost— обучение CatBoost-ансамбля.features.tabular— фичеинжиниринг табличных признаков.