🤔 Как посчитать рок аук скор?



Она измеряет способность модели различать положительные и отрицательные классы, независимо от выбранного порога классификации. Значение ROC AUC варьируется от 0 до 1, где 1 соответствует идеальной модели, а 0.5 — случайному угадыванию.



🚩Шаги для расчета в Python



1⃣Подготовка данных и модели.

2⃣Предсказание вероятностей классов.

3⃣Вычисление ROC AUC с использованием библиотеки scikit-learn.



import numpy as np

from sklearn.datasets import make_classification

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LogisticRegression

from sklearn.metrics import roc_auc_score



# Генерация данных

X, y = make_classification(n_samples=1000, n_features=20, random_state=42)



# Разделение данных на обучающую и тестовую выборки

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)



# Обучение модели логистической регрессии

model = LogisticRegression()

model.fit(X_train, y_train)



# Предсказание вероятностей для тестовой выборки

y_pred_prob = model.predict_proba(X_test)[:, 1]



# Вычисление ROC AUC

roc_auc = roc_auc_score(y_test, y_pred_prob)

print(f"ROC AUC Score: {roc_auc:.2f}")




1⃣Генерация данных

make_classification создает набор данных для задачи классификации.



2⃣Разделение данных

train_test_split делит данные на обучающую и тестовую выборки.



3⃣Обучение модели

LogisticRegression используется для обучения модели логистической регрессии.



4⃣Предсказание вероятностей

predict_proba возвращает вероятности для каждого класса. Нас интересует вероятность положительного класса (1), поэтому берем второй столбец результата ([:, 1]).



5⃣Вычисление ROC AUC

roc_auc_score вычисляет AUC на основе истинных меток (y_test) и предсказанных вероятностей (y_pred_prob).



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