Skip to content

Instantly share code, notes, and snippets.

@doraneko94
Last active July 31, 2023 02:36
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save doraneko94/e24643136cfb8baf03ef8a314ab9615c to your computer and use it in GitHub Desktop.
Save doraneko94/e24643136cfb8baf03ef8a314ab9615c to your computer and use it in GitHub Desktop.
Calculating confidence interval of ROC-AUC.
from sklearn.metrics import roc_auc_score
from math import sqrt
def roc_auc_ci(y_true, y_score, positive=1):
AUC = roc_auc_score(y_true, y_score)
N1 = sum(y_true == positive)
N2 = sum(y_true != positive)
Q1 = AUC / (2 - AUC)
Q2 = 2*AUC**2 / (1 + AUC)
SE_AUC = sqrt((AUC*(1 - AUC) + (N1 - 1)*(Q1 - AUC**2) + (N2 - 1)*(Q2 - AUC**2)) / (N1*N2))
lower = AUC - 1.96*SE_AUC
upper = AUC + 1.96*SE_AUC
if lower < 0:
lower = 0
if upper > 1:
upper = 1
return (lower, upper)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment