ML-модели умеют распознавать изображения, рекомендовать товары, прогнозировать спрос, находить подозрительные операции. Но чтобы использовать алгоритм, нужно убедиться, что он делает точные прогнозы. Какие метрики помогают в реальном продакшене — рассказываем в статье.
Что такое метрики ML-моделей и зачем они нужны
Чтобы оценить работу модели, нужно проверить, как она справляется с данными, которых раньше не видела. Для этого исходный датасет делят на две части:
- обучающая выборка (train dataset) — данные, на которых проходит обучение;
- тестовая выборка (test dataset) — данные, которые используют для проверки качества.
Так как модель заранее не знает правильных ответов, результаты проверки позволяют объективно оценить ее способность делать прогнозы.
Именно на тестовой выборке рассчитываются метрики качества. С их помощью можно понять, насколько хорошо алгоритм решает поставленную задачу, и сравнить разные модели.
Что такое матрица ошибок (Confusion Matrix)
После того как модель сделала прогноз на тестовой выборке, нужно сравнить их с правильными ответами. Для этого используют матрицу ошибок — она показывает, какие объекты модель классифицировала правильно, а где ошиблась.
В задачах бинарной классификации есть четыре типа результатов:
- True Positive (TP) — модель верно определила объект положительного класса, например смогла обнаружить мошенническую операцию.
- True Negative (TN) — модель верно определила объект отрицательного класса, например признала безопасной обычную банковскую операцию.
- False Positive (FP) — ложноположительный результат. Модель ошиблась и сообщила, что объект относится к положительному классу, например заблокировала обычную транзакцию как подозрительную.
- False Negative (FN) — ложноотрицательный результат. Модель не распознала объект и отнесла его к отрицательному классу, например пропустила мошенническую операцию.
Матрица ошибок помогает увидеть, какие сценарии алгоритм обрабатывает верно, а где возникают проблемы. Это важно, так как ложноположительные и ложноотрицательные результаты могут иметь разные последствия для бизнеса.

Метрики для задач классификации
Почти все основные метрики качества ML-моделей рассчитываются на основе матрицы ошибок. Для этого используют значения TN, TP, FP, FN.
Accuracy
Accuracy в машинном обучении отражает, насколько часто модель делает правильные прогнозы. Она рассчитывается как доля корректных классификаций среди всех объектов, которые обработал алгоритм.
Accuracy = (TP + TN) / (TP + TN + FP + FN)
Предположим, модель обработала 1000 фотографий и верно классифицировала 950 из них, тогда Accuracy составит 95%.
Метрика хорошо подходит в ситуациях, когда классы распределены примерно одинаково. Но, если один класс встречается чаще, Accuracy будет недостаточно.
Представьте систему поиска мошеннических банковских операций: из 10 000 транзакций мошенническими являются только 50. Если модель будет считать все операции обычными, метрика Accuracy окажется 99,5%. При этом на практике такая модель будет совершенно бесполезной.
Precision
Показывает, насколько часто модель оказывается права, когда относит объект к положительному классу. Рассчитывается по формуле:
Precision = TP / (TP + FP)
Precision используют в ситуациях, когда стоимость ложного срабатывания высока. Например, для сортировки писем на полезные и спам. Большое количество ложных срабатываний приведет к тому, что важные письма окажутся в нежелательной почте.
Recall
Recall (полнота) оценивает, сколько объектов нужного класса модель смогла обнаружить.
Recall = TP / (TP + FN)
Эту метрику используют в ситуациях, когда важно не пропустить нужное событие, например в медицинской диагностике, информационной безопасности, контроле качества продукции. Если Recall высокий, значит, модель находит большую часть важных объектов.
F1-score
На практике Precision и Recall иногда противоречат друг другу. Если сделать модель более осторожной, Precision может вырасти, а Recall — снизиться. И наоборот.
Чтобы оценить оба показателя одновременно, используют гармоническое среднее — F1-score.
F1 = 2 × Precision × Recall / (Precision + Recall)
Если одна из двух метрик значительно ниже другой, итоговое значение F1 тоже снизится. Благодаря этому модель не сможет получить высокий результат только за счет одного показателя.
F1-score используют при несбалансированных классах, когда важно избежать ложных срабатываний, но в то же время не пропустить реальные инциденты.
ROC-AUC кривая
В отличие от Accuracy, Precision и Recall, которые показывают результат модели при выбранном пороге классификации, ROC-AUC позволяет оценить ее качество для разных вариантов настройки.
ROC-кривая отражает, как меняется способность модели разделять классы при изменении порога. Показатель AUC — насколько хорошо алгоритм в целом разделяет классы.
Чтобы рассчитать ROC-AUC:
- Отсортируйте предсказания модели (вероятности от 0 до 1) от большего к меньшему.
- Варьируя порог классификации, рассчитайте TPR (долю правильных позитивных ответов) и FPR (долю ложных срабатываний) для каждого порога.
- Постройте кривую (TPR от FPR).
- Вычислите площадь под этой кривой (AUC).

Величина ROC-AUC всегда находится в диапазоне от 0 до 1:
- 0,5 — алгоритм работает на уровне случайного выбора;
- 0,7–0,8 — среднее качество модели;
- 0,8–0,9 — хорошее качество модели;
- выше 0,9 — отличная способность различать классы.
Как выбрать подходящую метрику
При выборе метрики нужно определить, что важнее: сократить количество ложных срабатываний, не пропустить важные события или найти баланс между этими требованиями.
- Accuracy — подойдет для сбалансированных данных, когда цена неверных предсказаний примерно одинаковая.
- Precision — можно использовать в ситуации, когда нужно минимизировать ложноположительные срабатывания. Например, при фильтрации спама, блокировке банковских операций.
- Recall (полнота) — используется в ситуациях, когда пропуск объекта нужного класса может привести к серьезным последствиям. Например, в здравоохранении, кибербезопасности, контроле качества на производстве.
- F1-score — подходит, если одновременно важны и Precision, и Recall, а также при дисбалансе классов.
- ROC-AUC — используется для сравнения разных моделей. Показывает, как хорошо алгоритм отличает объекты одного класса от другого.
Выбор метрики всегда зависит от того, какие ошибки допустимы в конкретной задаче, а какие могут иметь серьезные последствия.
Типичные ошибки при оценке ML-моделей
Даже хорошо обученная модель может получить неверную оценку, если использовать неподходящие метрики. Такое происходит, когда:
- Модель оценивают только по метрике Accuracy. При дисбалансе классов Accuracy может быть обманчивой — модель покажет хороший результат за счет правильного распознавания частого класса, даже если плохо находит редкие объекты.
- Сравнивают алгоритмы по одной метрике. Разные модели могут иметь одинаковый Accuracy, но существенно отличаться по Precision или Recall. Поэтому для оценки качества нужно рассчитывать несколько показателей.
- Игнорируют контекст. Одни и те же значения метрик могут означать разное качество в зависимости от области применения. Например, в медицине обычно важнее высокий Recall, а в антиспам-системах стоит ориентировать на Precision.
Метрики помогают сравнить модели, но сами по себе не дают полного представления об их качестве. Высокое значение одного показателя не означает, что модель будет эффективна в реальной работе. Важно учитывать особенности задачи и анализировать несколько метрик одновременно.
Главное о метриках ML-моделей
- Качество ML-модели оценивают на данных, которые алгоритм не использовал при обучении.
- Матрица ошибок помогает увидеть, какие сценарии модель обрабатывает верно, а где возникают проблемы.
- Метрика Accuracy помогает оценить общий процент верных предсказаний, но может быть неинформативной при сильном дисбалансе классов.
- Precision показывает, насколько часто положительные прогнозы модели оказываются правильными.
- Recall оценивает, какую часть объектов нужного класса алгоритм смог найти.
- F1-score объединяет Precision и Recall, помогает оценить баланс между ними.
- ROC-AUC показывает, насколько хорошо модель различает классы. Используется для сравнения разных алгоритмов.
- Универсальной метрики не существует, нужно выбирать показатель для каждой конкретной задачи отдельно.
