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

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

Метрики и анализ ошибок

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

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

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

Матрица ошибок

Для двоичной классификации TP — найденные положительные объекты, FP — ложные тревоги, FN — пропущенные положительные, TN — верно отвергнутые. Precision = TP/(TP+FP): какая доля срабатываний верна. Recall = TP/(TP+FN): какая доля нужных объектов найдена. F1 — гармоническое среднее precision и recall; она не описывает все возможные стоимости ошибок.

Accuracy — доля правильных ответов. Для нескольких классов macro-F1 считает F1 каждого класса отдельно и усредняет с равными весами. Weighted-F1 взвешивает по числу истинных объектов классов. При дисбалансе эти оценки отвечают на разные вопросы. В отчёте сохраняйте не только одно число, но и confusion matrix, число объектов и правило усреднения.

Порог и вероятности

Вероятности превращаются в решения по правилу выбора класса или порога. Меняя порог, можно увеличить recall ценой precision. Порог подбирайте на validation, не на финальном test. ROC-AUC и PR-AUC используют оценки уверенности; передача вместо них готовых классов теряет информацию. Укажите, какая именно метрика и способ усреднения используются.

Регрессия

MAE — средняя абсолютная ошибка в единицах цели. RMSE — корень из средней квадратичной ошибки; сильнее реагирует на большие промахи. Уточните цену выбросов и сравните с постоянным baseline. Масштаб цели влияет на численные значения: MAE 10 нельзя оценить без знания единиц.

Читайте ошибку, а не только среднее

Посмотрите на конкретные неверные объекты, классы и доступные признаки. Проверьте, не отражает ли провал ошибку разметки или недоступный признак. Не меняйте test на удобные случаи. Для маленьких выборок указывайте размер и не считайте разницу в тысячную долю доказательством превосходства.

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

python
from sklearn.metrics import precision_score, recall_score, f1_score
truth = [1, 1, 1, 0]
prediction = [1, 0, 1, 1]
print(round(precision_score(truth, prediction), 3))
print(round(recall_score(truth, prediction), 3))
print(round(f1_score(truth, prediction), 3))

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

text
0.667
0.667
0.667

TP=2, FP=1, FN=1. Precision и recall равны 2/3; F1 тоже 2/3. Это ручной пример проверки формул.

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

При TP=8, FP=2, FN=12 вычислите precision и recall. Какая проблема заметна?

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

Precision = 8/10 = 0.8; recall = 8/20 = 0.4. Большая часть срабатываний верна, но 60% нужных объектов пропущены. Решение о пороге зависит от стоимости таких пропусков.

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

1. Что измеряет recall?
2. Где подбирать порог классификации?

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

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