МОДУЛЬ 09 · Junior+ · 90 минут

0,97 на тесте, 0,61 в проде

Расследуем чужой инцидент: случайный сплит данных со временем, скейлер, обученный до разделения, и признак, которого в момент решения ещё не существует.

Пройти модуль в симуляторе Все 23 урока

Первые два модуля бесплатны, без карты. Остальные — по подписке $20/мес.

🏢 Ситуация

Четверг, 11:00. В канале #ml-alerts тревога: скоринг-модель соседней команды, показавшая на тесте ROC-AUC 0.97, в проде выдаёт 0.61 — хуже, чем старые ручные правила. CTO Виктор требует разбора. Лена назначает вас в инцидент-группу:

«Лучший способ научиться валидации — расследовать чужой фейл. Найди, где именно они себя обманули. Смотри на три вещи: как делили данные, что попало в признаки и когда считались статистики.»

🎯 Ваша задача

  1. Понять переобучение и недообучение через bias/variance.
  2. Освоить кросс-валидацию и валидацию по времени.
  3. Составить каталог утечек данных — и найти утечку в инциденте.

📚 Теория

Переобучение и недообучение

Диагностика по разрыву: train_metricval_metric → переобучение. Обе низкие → недообучение. Andrew Ng: «Смотрите на train error и val error как врач на два анализа — сочетание говорит о диагнозе».

Лечение переобучения: больше данных, проще модель, регуляризация, early stopping. Лечение недообучения: сложнее модель, лучше признаки, дольше обучение.

Диагноз по двум кривым: train vs validation early stopping — здесь train error ↓↓ validation error ↑ учимся честно: обе кривые падают переобучение: запоминаем шум train-выборки сложность модели / эпохи обучения → ошибка →
Пока обе кривые падают — модель учится; когда validation разворачивается вверх при падающем train — началось запоминание шума. Разрыв кривых = переобучение.

Кросс-валидация

Один train/test split — одна случайная оценка. K-fold CV: делим данные на K частей, K раз обучаемся на K−1 частях и валидируемся на оставшейся; усредняем. Получаем оценку и её разброс.

Каталог утечек данных (выучить наизусть)

  1. Утечка таргета в признаки: признак — следствие таргета («число звонков коллекторов» для дефолта).
  2. Утечка через время: признаки/агрегаты посчитаны с использованием будущего (не point-in-time).
  3. Утечка через препроцессинг: scaler/encoder/imputer обучен на всех данных до сплита.
  4. Утечка через дубликаты/группы: один клиент и в train, и в test.
  5. Утечка через отбор признаков: feature selection сделан на всех данных, потом «честная» CV.

Симптом всех утечек одинаков: подозрительно высокая метрика офлайн и провал в проде.


Что запомнить

  • Разрыв train/val метрик — главный индикатор переобучения.
  • Данные со временем валидируются по времени; строки одного клиента не разлучаем между фолдами и не раскидываем в train/test.
  • Слишком хорошая метрика — повод для тревоги, а не радости.
  • Препроцессинг — только в Pipeline, признаки — только point-in-time.

Дальше в модуле: Практика: расследование

Пошаговый разбор решения, код и квиз на 5 вопросов.

Открыть модуль →

Соседние уроки

08 Churn v2: бустинг против леса 10 Выжать ещё 2% качества

Программа целиком — 23 урока