Практика ML

Baselines

Бейзлайны

актуальноТекущий рабочий стандарт

Направления: Машинное обучение · Классический ML

Простейшее решение, с которым сравнивается всё остальное: константа, правило, .

Ключевые тезисы

  • Без невозможно понять, есть ли польза от модели.
  • Хороший ставится за час и часто оказывается достаточным.
  • заодно проверяет весь от данных до метрики.

Какую задачу решает

Метрика сама по себе ничего не значит: 42 — это хорошо или плохо? Ответ даёт только сравнение с чем-то простым. превращает абсолютное число в осмысленное утверждение «модель лучше существующего процесса на столько-то».

Правильная лестница базовых линий начинается с тривиального: константа или самый частый класс, затем текущее бизнес-правило, затем простая модель вроде , и только потом сложные решения. Каждая ступень отвечает на свой вопрос — есть ли в данных сигнал, лучше ли ML существующего процесса, оправдана ли сложность.

Базовая линия, которую все забывают

Прогноз временного ряда: сравнивайте не со средним, а с наивным прогнозом «завтра как сегодня» (или «как в этот день неделю назад» при недельной ). На большинстве бизнес-рядов наивный прогноз даёт , который сложные модели обгоняют на считанные проценты. Если ваша модель показывает 12% MAPE, а наивный прогноз 13% — вы потратили месяц на один процентный пункт, и это стоит обсудить с заказчиком до, а не после внедрения.

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

  1. Константа: самый частый класс или среднее — задаёт нижнюю границу метрики.
  2. Правило эксперта: «если задолженность > X, отказать».
  3. Линейная модель на нескольких очевидных .
  4. Бустинг со стандартными параметрами.
  5. И только потом — тонкая настройка, , .

заодно проверяет весь конвейер: загрузку данных, разбиение, метрику, отчёт. Если что-то сломано, это выяснится за час, а не через две недели.

from sklearn.dummy import DummyClassifier, DummyRegressor
DummyClassifier(strategy="prior").fit(X_tr, y_tr).score(X_te, y_te)
DummyRegressor(strategy="median").fit(X_tr, y_tr)

Если ваша модель не обходит константу с запасом, значит либо не несут сигнала, либо в пайплайне ошибка. Это первая проверка, которую стоит делать всегда.

Где применяется

  • Оценка результатаПонять, велик ли прирост от модели на самом деле.
  • Решение о продолженииЕсли сложная модель не обгоняет простую, проект надо переосмыслить, а не тюнить дальше.
  • Коммуникация с заказчиком«Лучше текущего процесса на 12%» понятнее, чем « 0.83».
  • Диагностика утечкиСлишком большой отрыв от разумной базовой линии — повод искать утечку.

Плюсы, минусы и альтернативы

Плюсы

  • Строится за минуты и сразу даёт систему координат.
  • Иногда закрывает задачу целиком: простое правило оказывается достаточным.
  • Защищает от иллюзии прогресса при работе со сложными моделями.
  • Помогает поймать утечку и ошибки в данных на раннем этапе.

Минусы

  • Требует дисциплины: соблазн сразу взяться за интересную модель силён.
  • Плохо выбранная вводит в заблуждение (среднее для временного ряда).

Брать, если

  • Всегда, в самом начале, до любой модели.
  • При каждом крупном изменении данных или постановки.

Не брать, если

  • Задача исследовательская и сравнивать не с чем — но даже тогда константа полезна.

Чем заменяют

Видеолекции

Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.

Связанные темы

Рабочий цикл ML-инженера

Проверить себя

Тема встречается в тестах по направлениям — ошибки приведут обратно на эту страницу.

Следующий шагПроверить себя: Временные рядыТема встречается в этом тесте 2 раза. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

Глава «Практика ML» последний раз правилась . Нашли ошибку — напишите.