利用sklearn画AUC曲线

from sklearn.metrics import roc_curve
labels=[1,1,0,0,1]
preds=[0.8,0.7,0.3,0.6,0.5]
fpr, tpr, thresholds = roc_curve(labels, preds)

print(fpr)
print(tpr)
print(thresholds)

结果:

[0. 0. 0.5 0.5 1. ]

[0.33333333 0.66666667 0.66666667 1. 1. ]

   [0.8 0.7 0.6 0.5 0.3]

计算AUC面积

auc=0
init_x=0
for x,y in zip(fpr,tpr):
if x!=init_x:
auc+=(x-init_x)*y
init_x=x
print(auc) 或者直接利用下面语句直接计算即可
from sklearn.metrics import roc_auc_score
auc = roc_auc_score(labels, preds)

画出AUC图

plt.plot(fpr,tpr)
plt.title("auc=%.4f"%(auc))
plt.xlabel("False Positive Rate")
plt.ylabel("True Positive Rate")
plt.fill_between(fpr, tpr, where=(tpr>0), color='green', alpha=0.5)
plt.show()

AUC画图与计算-LMLPHP

05-11 20:06