Ответ
ROC AUC (Area Under the Receiver Operating Characteristic Curve) вычисляется на основе предсказанных вероятностей принадлежности к положительному классу и истинных бинарных меток (0 или 1).
Ключевые моменты:
- Вход: Вектор вероятностей
y_score(например,[0.1, 0.9, 0.8, 0.3, 0.7]) и вектор истинных метокy_true(например,[0, 1, 1, 0, 1]). - Процесс: Метрика оценивает способность модели ранжировать объекты — вероятность для реально положительных объектов должна быть выше, чем для отрицательных. AUC — это площадь под кривой, которая строится по точкам (FPR, TPR) при варьировании порога классификации.
- Интерпретация:
- AUC = 1.0: Идеальное разделение.
- AUC = 0.5: Модель не лучше случайного угадывания.
- AUC < 0.5: Модель работает хуже случайной (но можно инвертировать предсказания).
Пример вычисления с помощью scikit-learn:
from sklearn.metrics import roc_auc_score
y_true = [0, 1, 1, 0, 1]
y_scores = [0.1, 0.9, 0.8, 0.3, 0.7] # Вероятности класса 1
auc_score = roc_auc_score(y_true, y_scores)
print(f"ROC AUC: {auc_score:.3f}") # Пример вывода: 0.833
Важно: ROC AUC оценивает качество ранжирования, а не конкретные предсказания, и может быть оптимистичной для сильно несбалансированных данных, где важна точность предсказания миноритарного класса.