Когда модель машинного обучения показывает «90% точности», это не всегда значит, что она действительно хороша. В ML одна метрика почти никогда не дает полной картины. Разберем 3 ключевые: accuracy, F1 и ROC AUC.
Accuracy — доля правильных ответов модели
Формула простая:
accuracy = число верных предсказаний / общее число предсказаний
Подходит, когда классы в данных распределены примерно равномерно. Например, если модель определяет спам и не-спам, и обоих классов примерно поровну, accuracy может быть полезной.
Но есть проблема ⚠️ Если в датасете 95% объектов относятся к одному классу, модель может всегда предсказывать только его и получить 95% accuracy, оставаясь бесполезной.
F1-score — баланс между precision и recall
F1 особенно важна, когда классы несбалансированы.
Чтобы понять F1, нужно знать:
- Precision — сколько из предсказанных «положительных» объектов действительно положительные
- Recall — сколько реальных положительных объектов модель нашла
F1-score — это гармоническое среднее между precision и recall. Она полезна, когда важны и ложноположительные, и ложноотрицательные ошибки.
Примеры применения:
- антифрод 💳
- медицинская диагностика 🏥
- поиск дефектов на производстве
Если модель редко находит нужный класс или, наоборот, находит слишком много «мусора», F1 поможет это увидеть лучше, чем accuracy.
ROC AUC — качество ранжирования модели
ROC AUC показывает, насколько хорошо модель отделяет один класс от другого при разных порогах принятия решения.
Проще говоря: если модель выдает вероятности, ROC AUC оценивает, ставит ли она объекты положительного класса выше отрицательных.
Значения обычно интерпретируют так:
- 0.5 — модель не лучше случайного угадывания
- 0.7–0.8 — приемлемо
- 0.8–0.9 — хорошо
- 0.9+ — очень хорошо 🚀
ROC AUC удобна, когда важно сравнить модели независимо от выбранного порога.
Какую метрику выбрать?
— Accuracy — если классы сбалансированы и цена ошибок примерно одинакова
— F1-score — если есть дисбаланс классов и важен баланс precision/recall
— ROC AUC — если модель выдает вероятности и нужно оценить общее качество разделения классов
Главный вывод
Нельзя смотреть только на одну цифру. Хорошая практика в ML — оценивать модель сразу по нескольким метрикам и обязательно учитывать бизнес-контекст 🧠
Например:
- в медицине важнее не пропустить болезнь
- в рекламе важнее не завышать ложные срабатывания
- в антифроде нужен баланс между безопасностью и удобством
Сохраняйте, если работаете с ML, аналитикой или Data Science 💡
Посмотрите подборку каналов про IT — там много полезного по ML, Data Science, разработке и карьере в технологиях.