Это метрика, которая измеряет площадь под кривой ROC (Receiver Operating Characteristic). Она используется для оценки качества бинарных классификаторов. ROC-кривая строится на основе различных порогов классификации и отображает соотношение между истинными положительными (True Positive Rate) и ложными положительными (False Positive Rate).
Независимость от порога: AUC измеряет производительность модели по всем возможным порогам, предоставляя общий показатель качества модели.
Робустность к несбалансированным классам: AUC не зависит от распределения классов в данных, что делает её особенно полезной для задач с несбалансированными классами.
Интерпретация: Значение AUC варьируется от 0 до 1. Значение 0.5 указывает на случайную модель, в то время как значение 1 указывает на идеальную модель.
AUC = 0.5: Модель не лучше случайного угадывания.
0.5 < AUC < 0.7: Модель имеет низкую предсказательную способность.
0.7 ≤ AUC < 0.9: Модель имеет хорошую предсказательную способность.
AUC ≥ 0.9: Модель имеет отличную предсказательную способность.
Давайте рассмотрим, как вычислить AUC для бинарного классификатора на Python с использованием библиотеки
scikit-learn
:import numpy as np
from sklearn.metrics import roc_auc_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# Генерация примера данных
X, y = make_classification(n_samples=1000, n_features=20, n_classes=2, random_state=42)
# Разделение данных на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Создание и обучение логистической регрессии
model = LogisticRegression()
model.fit(X_train, y_train)
# Предсказание вероятностей
y_pred_prob = model.predict_proba(X_test)[:, 1]
# Вычисление AUC
roc_auc = roc_auc_score(y_test, y_pred_prob)
print(f"ROC AUC: {roc_auc}")
numpy
для работы с массивами, roc_auc_score
для вычисления AUC, LogisticRegression
для создания модели логистической регрессии, make_classification
для генерации примерных данных и train_test_split
для разделения данных.make_classification
создаёт пример данных с 1000 наблюдениями и 20 признаками.roc_auc_score
вычисляет AUC на основе истинных значений и предсказанных вероятностей.Ставь 👍 и забирай 📚 Базу знаний