ROC-кривая и AUC-метрика
Что такое ROC-кривая?
ROC-кривая (Receiver Operating Characteristic) — это мощный инструмент для оценки качества бинарных классификаторов. Она показывает, как меняется соотношение между двумя важными метриками при варьировании порога классификации.
Представьте, что ваш модель предсказывает вероятность принадлежности к классу 1 (например, "болен" или "клиент купит"). Но чтобы получить окончательный ответ — "да" или "нет" — нужно выбрать порог. Обычно это 0.5, но не всегда это оптимально! ROC-кривая помогает найти лучший баланс.
🎯 Ключевая идея: ROC-кривая позволяет оценить модель независимо от конкретного порога классификации
Основные понятия: TPR и FPR
Для понимания кривой нужно разобрать две фундаментальные метрики:
| Метрика | Расшифровка | Формула | Интерпретация |
|---|---|---|---|
| TPR (True Positive Rate) | Полнота (Recall) | TPR = TP / (TP + FN) |
Какую долю реальных положительных случаев мы нашли |
| FPR (False Positive Rate) | Ложная тревога | FPR = FP / (FP + TN) |
Какую долю реальных отрицательных случаев мы ошибочно назвали положительными |
💡 Запомните: идеальный классификатор имеет TPR = 1 и FPR = 0 — он находит все нужные случаи без ложных срабатываний
Как строится ROC-кривая
- Мы получаем от модели вероятности для каждого объекта
- Сортируем объекты по убыванию вероятности
- Последовательно перебираем пороги от 0 до 1
- Для каждого порога считаем TPR и FPR
- Строим график: FPR по оси X, TPR по оси Y
Что такое AUC и как его интерпретировать
AUC (Area Under Curve) — это площадь под ROC-кривой. Эта метрика показывает общее качество модели одним числом от 0 до 1.
| Значение AUC | Интерпретация |
|---|---|
0.5 |
Модель не лучше случайного угадывания |
0.7 - 0.8 |
Хорошее качество |
0.8 - 0.9 |
Отличное качество |
> 0.9 |
Превосходное качество |
1.0 |
Идеальная модель |
📘 Важно: AUC показывает способность модели ранжировать объекты — насколько вероятности положительного класса выше для реально положительных объектов
Практическая задача
У нас есть модель, предсказавшая вероятности для 10 объектов. Реальные метки и вероятности:
| Объект | Реальный класс | Вероятность класса 1 |
|---|---|---|
| 1 | 1 | 0.9 |
| 2 | 0 | 0.8 |
| 3 | 1 | 0.7 |
| 4 | 0 | 0.6 |
| 5 | 1 | 0.5 |
| 6 | 0 | 0.4 |
| 7 | 1 | 0.3 |
| 8 | 0 | 0.2 |
| 9 | 0 | 0.1 |
| 10 | 1 | 0.05 |
Пошаговое решение
Шаг 1: Сортируем объекты по убыванию вероятности
| Вероятность | Реальный класс |
|---|---|
| 0.9 | 1 |
| 0.8 | 0 |
| 0.7 | 1 |
| 0.6 | 0 |
| 0.5 | 1 |
| 0.4 | 0 |
| 0.3 | 1 |
| 0.2 | 0 |
| 0.1 | 0 |
| 0.05 | 1 |
Шаг 2: Рассчитываем TPR и FPR для разных порогов
Всего положительных классов: 5 (объекты 1, 3, 5, 7, 10)
Всего отрицательных классов: 5 (объекты 2, 4, 6, 8, 9)
Для порога 0.9 (предсказываем 1 если вероятность ≥ 0.9):
- TP = 1 (только объект 1)
- FP = 0
- TPR = 1/5 = 0.2
- FPR = 0/5 = 0
Для порога 0.7 (предсказываем 1 если вероятность ≥ 0.7):
- TP = 2 (объекты 1 и 3)
- FP = 1 (объект 2)
- TPR = 2/5 = 0.4
- FPR = 1/5 = 0.2