AUC-PR (Area Under the Precision-Recall Curve) — это метрика, которая оценивает качество бинарного классификатора путем вычисления площади под кривой “Precision-Recall”. Это особенно полезная метрика в условиях несбалансированных данных.

Давайте разберем ее подробно.


Сначала разберем PR-кривую

PR-кривая (Precision-Recall curve) — это график, который показывает компромисс между Precision и Recall при различных порогах классификации.

Оси PR-кривой:

  • Ось X: Recall (Полнота)
    • Recall = TP / (TP + FN)
    • “Какую долю реально положительных объектов мы нашли?”
  • Ось Y: Precision (Точность)
    • Precision = TP / (TP + FP)
    • “Какая доля предсказанных положительных объектов действительно положительная?”

Как строится PR-кривая?

  1. Модель выдает вероятности принадлежности к положительному классу для каждого объекта.
  2. Мы перебираем все возможные пороги классификации от 0 до 1.
  3. Для каждого порога:
    • Считаем Precision и Recall.
    • Ставим точку на графике с координатами (Recall, Precision).
  4. Соединяем все точки — получаем PR-кривую.

Что такое AUC-PR?

AUC-PR — это площадь под PR-кривой.

Эта площадь всегда находится в диапазоне от 0 до 1, и ее интерпретация аналогична AUC-ROC, но с важными отличиями.


Ключевые отличия AUC-PR от AUC-ROC

АспектAUC-ROCAUC-PR
ОсиTPR (Recall) vs FPRPrecision vs Recall
Базовый уровень (случайная модель)Всегда 0.5Равен доле положительного класса в данных
Чувствительность к дисбалансуНизкаяВысокая
ФокусКачество разделения классовКачество предсказания положительного класса

Почему это отличие так важно?

Представьте задачу обнаружения мошенничества, где только 1% транзакций — мошеннические.

  • Для AUC-ROC: Случайный угадыватель будет иметь AUC-ROC = 0.5.
  • Для AUC-PR: Случайный угадыватель будет иметь AUC-PR ≈ 0.01 (равный доле положительного класса).

Это делает AUC-PR гораздо более строгой и информативной метрикой для несбалансированных данных.


Интерпретация AUC-PR

  • AUC-PR = 1.0: Идеальная модель. На всех порогах достигается Precision = 1 и Recall = 1.
  • AUC-PR > 0.7: Очень хорошая модель (для несбалансированных данных).
  • AUC-PR ≈ доля положительного класса: Качество модели сопоставимо со случайным угадыванием.
  • AUC-PR < доли положительного класса: Модель работает хуже случайного угадывания.

Визуализация PR-кривых

TBD

Практический пример

Задача: Обнаружение мошеннических транзакций (1% мошеннических, 99% легальных).

Модель A:

  • Находит 80% мошеннических операций (Recall = 0.8)
  • Но при этом 50% ее предсказаний “мошенничество” — ложные (Precision = 0.5)

Модель B:

  • Находит только 40% мошеннических операций (Recall = 0.4)
  • Но когда она говорит “мошенничество”, она почти не ошибается (Precision = 0.95)

Какая модель лучше?

  • Для бизнеса может быть важнее Model B с высоким Precision (меньше ложных обвинений легальных клиентов).
  • AUC-PR поможет количественно сравнить эти модели, учитывая компромисс между Precision и Recall на всех порогах.

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

AUC-PR предпочтительнее AUC-ROC в следующих случаях:

  1. Сильно несбалансированные данные — когда положительный класс редкий (менее 10-20%).
  2. Когда важнее качество предсказания положительного класса — например, в задачах обнаружения заболеваний, мошенничества, спама.
  3. Когда стоимость False Positive высока — и вам важно минимизировать ложные срабатывания.

Примеры задач, где AUC-PR важна:

  • Медицинская диагностика редких заболеваний
  • Обнаружение мошенничества в транзакциях
  • Поиск аномалий в промышленных системах
  • Информационный поиск (поиск релевантных документов)
  • Компьютерное зрение для обнаружения редких объектов

Как вычисляется AUC-PR?

Алгоритм вычисления аналогичен AUC-ROC, но с использованием Precision и Recall:

from sklearn.metrics import precision_recall_curve, auc
 
# y_true - истинные метки, y_scores - вероятности от модели
precision, recall, thresholds = precision_recall_curve(y_true, y_scores)
auc_pr = auc(recall, precision)

Краткий итог

  • AUC-PR — это площадь под кривой Precision-Recall.
  • Это предпочтительная метрика для несбалансированных данных.
  • В отличие от AUC-ROC, ее базовый уровень зависит от распределения классов.
  • Она лучше отражает качество предсказания положительного класса, особенно когда он редкий.
  • Используйте AUC-PR, когда работаете с задачами обнаружения редких событий, аномалий или когда ложные срабатывания особенно дороги.

Правило выбора: Если ваши данные сбалансированы — используйте обе метрики. Если несбалансированы — в первую очередь смотрите на AUC-PR.