AUC-ROC (Area Under the ROC Curve) — это одна из самых важных и широко используемых метрик для оценки качества бинарных классификаторов. Давайте разберем ее по частям.
Сначала разберем ROC-кривую
ROC-кривая (Receiver Operating Characteristic curve) — это график, который показывает, как меняется качество работы классификатора при изменении порога классификации.
Что такое порог классификации? Большинство классификаторов выдают не просто метку “0” или “1”, а вероятность принадлежности к положительному классу. Порог — это число, выше которого мы считаем предсказание положительным.
- Пример: Если порог = 0.5, то все объекты с вероятностью > 0.5 считаются “1”, а ≤ 0.5 — “0”.
Оси ROC-кривой:
- Ось X: False Positive Rate (FPR) — Доля ложных срабатываний.
FPR = FP / (FP + TN)- Вопрос: “Какую долю из всех реально отрицательных мы неверно назвали положительными?”
- Ось Y: True Positive Rate (TPR) или Recall — Доля истинных срабатываний.
TPR = TP / (TP + FN)- Вопрос: “Какую долю из всех реально положительных мы верно нашли?”
Как строится ROC-кривая?
- Мы берем нашу модель и применяем ее к тестовым данным, получая вероятности для каждого объекта.
- Мы перебираем все возможные пороги от 0 до 1 (например, 0.00, 0.01, 0.02, …, 1.00).
- Для каждого порога:
- Считаем TPR (Recall) и FPR.
- Ставим точку на графике с координатами (FPR, TPR).
- Соединяем все точки — получаем ROC-кривую.
Теперь что такое AUC-ROC
AUC-ROC (Area Under the ROC Curve) — это площадь под ROC-кривой.
Эта площадь всегда находится в диапазоне от 0 до 1 и интерпретируется следующим образом:
Интерпретация значений AUC-ROC
| Значение AUC | Интерпретация |
|---|---|
| 0.9 - 1.0 | Отличное качество |
| 0.8 - 0.9 | Очень хорошее качество |
| 0.7 - 0.8 | Хорошее качество |
| 0.6 - 0.7 | Посредственное качество |
| 0.5 - 0.6 | Плохое качество |
| 0.5 | Качество не лучше случайного угадывания |
| < 0.5 | Модель работает хуже случайного угадывания (возможно, нужно инвертировать предсказания) |
Интуитивное понимание AUC-ROC
AUC-ROC показывает, насколько хорошо модель отделяет положительные классы от отрицательных.
Есть очень хорошая интерпретация:
AUC-ROC — это вероятность того, что случайно выбранный положительный объект получит от модели более высокую оценку (вероятность быть положительным), чем случайно выбранный отрицательный объект.
- Пример: Если AUC = 0.8, то если мы возьмем случайного больного и случайного здорового, то с вероятностью 80% модель присвоит больному более высокий балл, чем здоровому.
Визуализация ROC-кривых
Давайте представим три типичные кривые:
-
Идеальная модель (AUC = 1.0):
- Кривая идет строго вверх по левому краю, а затем по верхней границе.
- Существует порог, при котором мы находим ВСЕХ больных (TPR=1), и при этом НИКОГО не обвиняем напрасно (FPR=0).
-
Случайный угадыватель (AUC = 0.5):
- Кривая идет по диагонали из левого нижнего угла в правый верхний.
- Это эквивалентно подбрасыванию монетки. Чтобы найти больше больных, нам придется пропорционально больше обвинять здоровых.
-
Хорошая модель (AUC = 0.8):
- Кривая сильно выгибается в левый верхний угол.
- Мы можем найти много больных, обвинив при этом относительно мало здоровых.
TBD
Пример расчета
Предположим, у нас есть 5 пациентов: 2 больных (P) и 3 здоровых (N). Наша модель присвоила им следующие вероятности болезни:
| Пациент | Факт | Вероятность (модель) |
|---|---|---|
| A | P | 0.9 |
| B | P | 0.8 |
| C | N | 0.7 |
| D | N | 0.6 |
| E | N | 0.1 |
Считаем AUC интуитивно (через вероятность):
- Сравниваем все пары (Больной, Здоровый): Всего 2 * 3 = 6 пар.
- (A,C): 0.9 > 0.7 → +1
- (A,D): 0.9 > 0.6 → +1
- (A,E): 0.9 > 0.1 → +1
- (B,C): 0.8 > 0.7 → +1
- (B,D): 0.8 > 0.6 → +1
- (B,E): 0.8 > 0.1 → +1
- Во всех 6 парах больной получил более высокий балл, чем здоровый.
- AUC = 6 / 6 = 1.0 — идеальное разделение.
Преимущества AUC-ROC
- Инвариантна к дисбалансу классов: В отличие от Accuracy, она хорошо работает, даже когда одного класса намного больше, чем другого.
- Инвариантна к порогу: Позволяет оценить качество модели в целом, без привязки к конкретному порогу классификации.
- Хороша для сравнения моделей: Позволяет легко сравнить несколько моделей между собой одной метрикой.
Когда использовать AUC-ROC?
- Когда вам важна отделяющая способность модели в целом.
- Когда вы не знаете оптимальный порог и хотите оценить модель независимо от него.
- Когда у вас несбалансированные данные.
Ограничения
- Не учитывает конкретные бизнес-затраты на FP и FN. Если цена ошибок известна, лучше выбирать порог на основе конкретных затрат, а не максимизации AUC.
- В случае сильного дисбаланса иногда лучше смотреть на Precision-Recall кривую (PR-кривую) и AUC-PR, так как ROC-кривая может быть излишне оптимистичной.
Краткий итог
AUC-ROC — это скалярная метрика, которая оценивает, насколько хорошо модель ранжирует объекты (присваивает положительным объектам более высокие баллы, чем отрицательным). Это одна из самых надежных и информативных метрик для оценки бинарных классификаторов.