Что такое ROC-AUC
ROC-AUC (Receiver Operating Characteristic — Area Under Curve) — это метрика качества бинарной классификации, которая показывает способность модели различать два класса. Она вычисляется как площадь под ROC-кривой, где ROC-кривая строится по точкам (FPR, TPR) при изменении порога классификации. Значение AUC варьируется от 0 до 1: чем ближе к 1, тем лучше модель различает классы; 0.5 соответствует случайному угадыванию.
Как это работает
ROC-кривая строится следующим образом: для каждого возможного порога вероятности, который модель использует для отнесения объекта к положительному классу, вычисляются две метрики:
- TPR (True Positive Rate) — доля правильно предсказанных положительных объектов среди всех реально положительных (чувствительность).
- FPR (False Positive Rate) — доля ошибочно предсказанных положительных объектов среди всех реально отрицательных (специфичность, вычтенная из 1).
Кривая соединяет точки, полученные при всех порогах, от 0 до 1. AUC — это интеграл (площадь) под этой кривой. Чем больше площадь, тем выше вероятность, что модель поставит случайно выбранному положительному объекту более высокий балл, чем случайно выбранному отрицательному.
Пример расчета
В Python с библиотекой sklearn расчет выполняется одной функцией:
from sklearn.metrics import roc_auc_score
y_true = [0, 1, 0, 1] # истинные метки
# вероятности принадлежности к классу 1, выданные моделью
y_scores = [0.1, 0.4, 0.35, 0.8]
print(roc_auc_score(y_true, y_scores)) # 0.875Здесь AUC равен 0.875, что говорит о хорошей различительной способности модели на данном примере.
Подводные камни
- Несбалансированные данные: при сильном дисбалансе классов ROC-AUC может быть оптимистичным, так как FPR мало зависит от большого числа отрицательных объектов. В таких случаях предпочтительнее использовать Precision-Recall AUC.
- Чувствительность к ранжированию: метрика зависит только от порядка предсказанных вероятностей, а не от их абсолютных значений. Поэтому калибровка вероятностей не влияет на AUC.
- Интерпретация: значение 0.5 означает, что модель не лучше случайного угадывания; 0.7–0.8 — приемлемо; >0.8 — хорошо; >0.9 — отлично, но может указывать на переобучение.
Когда использовать
ROC-AUC подходит для задач, где важна способность модели ранжировать объекты по вероятности принадлежности к классу, например, в кредитном скоринге, медицинской диагностике или поиске аномалий. Однако для задач с сильным дисбалансом классов или когда важна точность на положительном классе, лучше дополнительно смотреть на Precision-Recall кривую и её AUC.
Коротко
- ROC-AUC — площадь под ROC-кривой, показывает качество ранжирования объектов моделью.
- Значение 0.5 — случайное угадывание, 1.0 — идеальная модель.
- Метрика не зависит от абсолютных значений вероятностей, только от их порядка.
- При несбалансированных данных используйте Precision-Recall AUC вместо ROC-AUC.
