В области машинного обучения и анализа данных наблюдение площади под кривой (AUC) кривой рабочей характеристики приемника (ROC) является обычной практикой для оценки эффективности моделей классификации. Помимо построения графика AUC, также может быть полезно визуализировать соответствующие 95% доверительные интервалы (ДИ), чтобы лучше понять неопределенность оценки AUC. В этой статье блога мы рассмотрим различные методы построения графика AUC с доверительным интервалом 95 % с использованием Python, приведя примеры кода для каждого подхода.
Методы:
- Загрузочная повторная выборка.
Загрузочная повторная выборка – это популярный метод оценки доверительных интервалов. Чтобы рассчитать AUC с доверительным интервалом 95 % с использованием бутстрап-пересчета, вы можете выполнить следующие действия:
import numpy as np
from sklearn.metrics import roc_auc_score
from sklearn.utils import resample
# Assuming you have your true labels (y_true) and predicted probabilities (y_pred) ready
n_iterations = 1000
n_size = len(y_true)
auc_scores = []
for _ in range(n_iterations):
# Bootstrap resample
indices = resample(range(n_size), n_samples=n_size)
bootstrap_true = y_true[indices]
bootstrap_pred = y_pred[indices]
# Calculate AUC
auc = roc_auc_score(bootstrap_true, bootstrap_pred)
auc_scores.append(auc)
# Calculate confidence intervals
lower_bound = np.percentile(auc_scores, 2.5)
upper_bound = np.percentile(auc_scores, 97.5)
# Plot AUC with confidence intervals
# Use your preferred plotting library, such as Matplotlib or Seaborn, to create the plot
# Add error bars or shaded regions to indicate the confidence intervals
- Метод Делонга.
Метод Делонга представляет собой статистический подход для сравнения AUC двух моделей и оценки доверительных интервалов. Его также можно адаптировать для оценки доверительных интервалов для одной AUC. Вот пример использования метода Делонга для построения графика AUC с доверительным интервалом 95 %:
from sklearn.metrics import roc_auc_score
from scipy.stats import norm
# Assuming you have your true labels (y_true) and predicted probabilities (y_pred) ready
# Calculate AUC
auc = roc_auc_score(y_true, y_pred)
# Calculate standard error
n = len(y_true)
se = np.sqrt(auc * (1 - auc) / n)
# Calculate confidence intervals using the normal approximation
z_score = norm.ppf(0.975) # 95% confidence level
lower_bound = auc - z_score * se
upper_bound = auc + z_score * se
# Plot AUC with confidence intervals
# Use your preferred plotting library to create the plot
# Add error bars or shaded regions to indicate the confidence intervals
- Повторная выборка складного ножа.
Повторная выборка складного ножа — это еще один метод оценки доверительных интервалов. Он предполагает систематический отказ от одного наблюдения за раз и перерасчет AUC. Вот пример кода, демонстрирующий, как построить график AUC с доверительным интервалом 95 % с использованием повторной выборки складного ножа:
import numpy as np
from sklearn.metrics import roc_auc_score
# Assuming you have your true labels (y_true) and predicted probabilities (y_pred) ready
n_samples = len(y_true)
auc_scores = []
for i in range(n_samples):
# Leave out one observation
jackknife_true = np.delete(y_true, i)
jackknife_pred = np.delete(y_pred, i)
# Calculate AUC
auc = roc_auc_score(jackknife_true, jackknife_pred)
auc_scores.append(auc)
# Calculate confidence intervals
lower_bound = np.percentile(auc_scores, 2.5)
upper_bound = np.percentile(auc_scores, 97.5)
# Plot AUC with confidence intervals
# Use your preferred plotting library to create the plot
# Add error bars or shaded regions to indicate the confidence intervals
В этой статье мы рассмотрели несколько методов построения графика AUC с доверительным интервалом 95 % в Python. Мы рассмотрели повторную выборку начальной загрузки, метод Делонга и повторную выборку складного ножа, предоставив примеры кода для каждого подхода. Эти методы позволяют визуализировать неопределенность оценки AUC и получить более глубокое понимание эффективности моделей классификации. Включив доверительные интервалы в графики AUC, вы сможете эффективно сообщить о надежности своих результатов.