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-кривая?

  1. Мы берем нашу модель и применяем ее к тестовым данным, получая вероятности для каждого объекта.
  2. Мы перебираем все возможные пороги от 0 до 1 (например, 0.00, 0.01, 0.02, …, 1.00).
  3. Для каждого порога:
    • Считаем TPR (Recall) и FPR.
    • Ставим точку на графике с координатами (FPR, TPR).
  4. Соединяем все точки — получаем 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-кривых

Давайте представим три типичные кривые:

  1. Идеальная модель (AUC = 1.0):

    • Кривая идет строго вверх по левому краю, а затем по верхней границе.
    • Существует порог, при котором мы находим ВСЕХ больных (TPR=1), и при этом НИКОГО не обвиняем напрасно (FPR=0).
  2. Случайный угадыватель (AUC = 0.5):

    • Кривая идет по диагонали из левого нижнего угла в правый верхний.
    • Это эквивалентно подбрасыванию монетки. Чтобы найти больше больных, нам придется пропорционально больше обвинять здоровых.
  3. Хорошая модель (AUC = 0.8):

    • Кривая сильно выгибается в левый верхний угол.
    • Мы можем найти много больных, обвинив при этом относительно мало здоровых.

TBD

Пример расчета

Предположим, у нас есть 5 пациентов: 2 больных (P) и 3 здоровых (N). Наша модель присвоила им следующие вероятности болезни:

ПациентФактВероятность (модель)
AP0.9
BP0.8
CN0.7
DN0.6
EN0.1

Считаем AUC интуитивно (через вероятность):

  1. Сравниваем все пары (Больной, Здоровый): Всего 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
  2. Во всех 6 парах больной получил более высокий балл, чем здоровый.
  3. AUC = 6 / 6 = 1.0 — идеальное разделение.

Преимущества AUC-ROC

  1. Инвариантна к дисбалансу классов: В отличие от Accuracy, она хорошо работает, даже когда одного класса намного больше, чем другого.
  2. Инвариантна к порогу: Позволяет оценить качество модели в целом, без привязки к конкретному порогу классификации.
  3. Хороша для сравнения моделей: Позволяет легко сравнить несколько моделей между собой одной метрикой.

Когда использовать AUC-ROC?

  • Когда вам важна отделяющая способность модели в целом.
  • Когда вы не знаете оптимальный порог и хотите оценить модель независимо от него.
  • Когда у вас несбалансированные данные.

Ограничения

  • Не учитывает конкретные бизнес-затраты на FP и FN. Если цена ошибок известна, лучше выбирать порог на основе конкретных затрат, а не максимизации AUC.
  • В случае сильного дисбаланса иногда лучше смотреть на Precision-Recall кривую (PR-кривую) и AUC-PR, так как ROC-кривая может быть излишне оптимистичной.

Краткий итог

AUC-ROC — это скалярная метрика, которая оценивает, насколько хорошо модель ранжирует объекты (присваивает положительным объектам более высокие баллы, чем отрицательным). Это одна из самых надежных и информативных метрик для оценки бинарных классификаторов.