Встречается на 47% собеседований по Data Engineer

Что такое 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 расчет выполняется одной функцией:

python
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.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы