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