AUC画图与计算

利用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()

原文地址:https://www.cnblogs.com/gczr/p/9138698.html