ROC-AUC и PR-AUC — две метрики, которые постоянно путают.
И чаще всего выбирают не ту.
Разберём на пальцах 👇
📈 Что такое ROC-кривая
ROC-кривая показывает:
👉 TPR (Recall) — сколько положительных нашли
👉 FPR — сколько отрицательных ошибочно посчитали положительными
Насколько хорошо модель отделяет классы.
ROC-AUC — площадь под этой кривой.
📊 Что такое PR-кривая
PR-кривая показывает:
👉 Precision — насколько точны предсказания
👉 Recall — сколько положительных нашли
Насколько хорошо модель находит редкий класс без мусора.
PR-AUC — площадь под этой кривой.
⚔️ Главная разница
👉 ROC-AUC → разделимость классов
👉 PR-AUC → качество положительных предсказаний
🚨 Где все ошибаются
Используют ROC-AUC при сильном дисбалансе классов.
Почему это плохо?
👉 FPR считается по огромному количеству негативов
👉 даже плохая модель может выглядеть «хорошо»
ROC-AUC становится слишком оптимистичной.
📉 Когда нужен PR-AUC
Если у тебя:
👉 fraud detection
👉 churn prediction
👉 medical diagnosis
👉 rare event detection
👉 используй PR-AUC
Потому что тебе важно:
👉 находить редкий класс
👉 не засыпать всё false positive
📈 Когда подходит ROC-AUC
Если:
👉 классы более-менее сбалансированы
👉 важна общая separability
👉 задача — в целом отличать классы
👉 тогда ROC-AUC ок
🧠 Интуитивный пример
Представь:
👉 1% — мошенники
👉 99% — нормальные
Модель говорит «всё ок» почти всегда:
👉 ROC-AUC может быть высоким
👉 PR-AUC будет низким
Потому что модель не ловит мошенников.
💥 Главный инсайт
ROC-AUC отвечает на вопрос:
Модель в принципе различает классы?
PR-AUC отвечает на вопрос:
Насколько полезны её положительные предсказания?
В одном предложении
Если класс редкий — PR-AUC важнее ROC-AUC.
Если баланс нормальный — можно использовать ROC-AUC.