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