Skip to content

Instantly share code, notes, and snippets.

@nagarindkx
Forked from doraneko94/roc_auc_ci.py
Created December 20, 2022 05:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nagarindkx/617640a326f518c0a67eac2870846ddd to your computer and use it in GitHub Desktop.
Save nagarindkx/617640a326f518c0a67eac2870846ddd 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