← Маршрут ML-инженерии

Урок · 2 мин чтения · упражнения и самопроверка

Baseline и постановка метрики

После урока: объяснить большинство и выполнить упражнение «Сравнить модель с правилом самого частого класса», обосновав выбранный подход..

Перед началом

Примеры выполняются локально: скачайте лабораторию и установите зависимости по README. Онлайн-редактор алгоритмических задач не содержит ML-библиотеки.

Зачем нужна простая модель

Значение метрики имеет смысл в сравнении. Для классификации первый baseline может всегда предсказывать самый частый класс train. Это настоящее правило с измеряемым качеством, а не подстановка желаемой цифры. Для регрессии начните с постоянного среднего или медианы train в зависимости от выбранной потери.

Если положительный класс встречается редко, предсказание только отрицательного может дать высокую accuracy, не находя ни одного нужного случая. Поэтому уже до сложных алгоритмов выберите метрику, которая отражает стоимость ошибок. В Wine сравниваем macro-F1 и accuracy: три класса рассматриваются отдельно, а затем F1 усредняется с равным весом.

Одинаковая процедура

Baseline и основная модель должны обучаться на одном train и оцениваться на одном holdout. Иначе разность оценок может быть следствием разных наблюдений. Запишите правило baseline в отчёте. Не меняйте его после просмотра test, чтобы сделать сравнение красивее.

В scikit-learn DummyClassifier реализует такие простые стратегии. Название класса не означает искусственные данные: он обучается на реальных метках train и выдаёт предсказания по заданному правилу. В лаборатории strategy="most_frequent" всегда выбирает наиболее частый класс train.

Критерий перехода

Превосходство над baseline необходимо, но недостаточно для полезной системы. Нужны анализ ошибок по классам, устойчивость процедуры и подходящие требования продукта. Маленькое улучшение на 36 объектах может быть нестабильным. Не обещайте перенос на другое распределение.

После запуска примера проверьте, что счётчик различных предсказанных классов равен одному. Затем самостоятельно сравните accuracy и macro-F1 с отчётом полноценной модели.

Пошаговый пример

python
from sklearn.datasets import load_wine
from sklearn.dummy import DummyClassifier
from sklearn.model_selection import train_test_split
data = load_wine()
a, b, ya, yb = train_test_split(data.data, data.target, test_size=0.2, stratify=data.target, random_state=42)
model = DummyClassifier(strategy="most_frequent").fit(a, ya)
print(len(set(model.predict(b))))

Ожидаемый вывод

text
1

На всех holdout-объектах выбирается один и тот же частый класс. Это проверяемая точка сравнения.

Сделайте самостоятельно

Объясните, почему accuracy 99% может быть бесполезна при доле редкого класса 1%. Предложите дополнительную проверку.

Ответ и критерии проверки

Модель может всегда отвечать «обычный класс» и пропускать все редкие случаи. Проверьте recall редкого класса, precision и confusion matrix; выберите допустимый компромисс по цене ошибок.

Проверьте понимание

1. Где определяется самый частый класс baseline?
2. Гарантирует ли победа над baseline готовность сервиса?

Редакция SubTree · Проверка примеров: 26.10.2026

Исполняемые примеры проверены автоматическим запуском; источники сверены при подготовке.