Как посчитать Roc Auc в Python: легкий и понятный подход
ROC AUC (Receiver Operating Characteristic Area Under the Curve) можно посчитать с использованием библиотеки scikit-learn в Python. Вот пример кода:
from sklearn.metrics import roc_auc_score
# Истинные значения и предсказанные вероятности
true_labels = [0, 1, 0, 1]
predicted_probabilities = [0.2, 0.7, 0.3, 0.8]
# Вычисление ROC AUC
roc_auc = roc_auc_score(true_labels, predicted_probabilities)
print(f"ROC AUC: {roc_auc}")
В этом примере мы импортируем функцию roc_auc_score из библиотеки scikit-learn. Затем у нас есть два списка: true_labels, содержащий истинные значения классов (0 или 1), и predicted_probabilities, содержащий предсказанные вероятности классов.
Мы вызываем функцию roc_auc_score, передавая ей эти два списка, и она возвращает значение ROC AUC. Затем мы просто выводим результат с помощью функции print.
Детальный ответ
Как посчитать ROC AUC в Python
ROC AUC (Area Under the ROC Curve) - это метрика, используемая для оценки качества моделей машинного обучения, особенно в задачах классификации. Она измеряет площадь под кривой ROC (Receiver Operating Characteristic), которая отображает зависимость между чувствительностью и специфичностью модели при различных пороговых значениях.
Для расчета ROC AUC в Python мы можем использовать библиотеку scikit-learn. Ниже приведен пример кода:
from sklearn.metrics import roc_auc_score
y_true = [0, 1, 1, 0, 1]
y_scores = [0.1, 0.8, 0.3, 0.6, 0.9]
roc_auc = roc_auc_score(y_true, y_scores)
print("ROC AUC:", roc_auc)
В коде выше мы импортируем функцию roc_auc_score из модуля sklearn.metrics и задаем истинные метки y_true и предсказанные оценки y_scores. Затем мы вызываем функцию roc_auc_score, передавая истинные метки и оценки, и сохраняем результат в переменную roc_auc. Наконец, мы выводим значение ROC AUC с помощью функции print.
Обратите внимание, что истинные метки y_true должны быть в формате бинарных меток (0 или 1), а оценки y_scores должны быть непрерывными значениями, предсказывающими вероятность принадлежности к положительному классу.
Если у вас есть предсказанные вероятности для нескольких классов, вы можете вычислить ROC AUC для каждого класса отдельно, используя множество истинных меток и соответствующие оценки вероятности для каждого класса.
Вот пример кода, показывающий, как вычислить ROC AUC для многоклассовой классификации:
from sklearn.metrics import roc_auc_score
import numpy as np
y_true = np.array([[0, 1, 0], [1, 0, 1], [0, 1, 1]])
y_scores = np.array([[0.1, 0.9, 0.2], [0.8, 0.3, 0.6], [0.4, 0.7, 0.9]])
roc_auc = roc_auc_score(y_true, y_scores, multi_class='ovr')
print("ROC AUC (многоклассовая):", roc_auc)
В примере кода мы импортируем модуль numpy для работы с многомерными массивами и используем функцию roc_auc_score для вычисления ROC AUC для каждого класса отдельно по методу "один против всех" (multi_class='ovr').
Вывод
В этой статье мы рассмотрели, как посчитать ROC AUC в Python с использованием библиотеки scikit-learn. Метрика ROC AUC полезна для оценки качества моделей классификации и помогает разработчикам и исследователям в области машинного обучения принимать информированные решения на основе производительности моделей.