🤔 Что такое AUC?



Это метрика, которая измеряет площадь под кривой ROC (Receiver Operating Characteristic). Она используется для оценки качества бинарных классификаторов. ROC-кривая строится на основе различных порогов классификации и отображает соотношение между истинными положительными (True Positive Rate) и ложными положительными (False Positive Rate).



🚩Почему используется AUC?



Независимость от порога: AUC измеряет производительность модели по всем возможным порогам, предоставляя общий показатель качества модели.

Робустность к несбалансированным классам: AUC не зависит от распределения классов в данных, что делает её особенно полезной для задач с несбалансированными классами.

Интерпретация: Значение AUC варьируется от 0 до 1. Значение 0.5 указывает на случайную модель, в то время как значение 1 указывает на идеальную модель.



🚩Как интерпретировать AUC?



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}")




🚩Пошаговое объяснение кода:



1⃣Импорт необходимых библиотек: numpy для работы с массивами, roc_auc_score для вычисления AUC, LogisticRegression для создания модели логистической регрессии, make_classification для генерации примерных данных и train_test_split для разделения данных.

2⃣Генерация данных: make_classification создаёт пример данных с 1000 наблюдениями и 20 признаками.

3⃣Разделение данных: Данные разделяются на обучающую и тестовую выборки.

4⃣Обучение модели: Модель логистической регрессии обучается на обучающей выборке.

5⃣Предсказание вероятностей: Получаем предсказанные вероятности для тестовой выборки.

6⃣Вычисление AUC: roc_auc_score вычисляет AUC на основе истинных значений и предсказанных вероятностей.



Ставь 👍 и забирай 📚 Базу знаний