🚨 ROC-AUC 0.95 — а модель опять плохая…
Итак, я обещала разбор, так что продолжаем на том же примере 👀
Есть модель, которая ищет мошеннические банковские операции 🔎 Всего у нас 1000 транзакций 💸
Из них: ⛔️50 реально мошеннические ✅950 нормальные
Теперь уже модель не просто говорит «мошенник / не мошенник», а выдаёт вероятность мошенничества.
Например: 0.92, 0.85, 0.77, 0.65…
Что дальше? 🤔 Дальше мы выбираем порог, по которому будем делить операции на два класса ⏩️ Но если этот порог двигать, метрики тоже будут меняться 📊 И именно на этом строятся ROC-AUC и PR-AUC
🤵 ROC-AUC
ROC-кривая показывает при разных порогах: TPR = TP/(TP+FN) — сколько мошенников нашли из всех имеющихся aka Recall 🔍 FPR = FP/(TN+FP) — сколько нормальных операций ошибочно назвали мошенническими 😢
📈Оси: X → FPR Y → TPR ROC-AUC — площадь под этой кривой.
🔸Интуитивно: AUC (area under curve) — вероятность того, что модель поставит более высокий скор мошеннику, чем обычной операции
Например: ROC-AUC = 0.9, то есть 90% кейсов модель правильно ранжирует.
Звучит хорошо, но нет. 🤷♂️ Когда нормальных операций сильно больше, FPR остаётся маленьким даже при большом количестве ошибок.
[Ничего не напоминает?] Accuracy, ты ли это?
💼PR-AUC
PR-кривая строится по уже знакомым с прошлого поста Precision и Recall
📈Оси: X → Recall Y → Precision PR-AUC — площадь под этой кривой.
🧑🍳 Как вы понимаете, здесь уже не похалтуришь!
🟩 Короткий лайфхак Если задача звучит как: «найти редкие плохие события» (фрод, болезни, дефекты) → PR-AUC обычно важнее ROC-AUC
❓А какие метрики встречались у вас на собесах?
Реакции: 😱 — AUCи были, да 🥂 — F1, precision, recall 😅 — обычные продуктовые…