本笔记来源于B站Up主: 有Li 的影像组学系列教学视频
本节(15)主要介绍: ROC曲线及其绘制
ROC = receiver operating characteristic curve, 受试者工作特征曲线
横坐标:FPR = false positive rate, 假阳
纵坐标:TPR = true positive rate, 真阳
ROC曲线上的点,表示在不同阈值时对应的FPR和TPR
上面的阈值指预测阳性概率为多大及以上时,判定为阳性
关注四个点来理解ROC曲线:
(0,0) :FPR = 0,TPR = 0, 即全部预测N
(1,1) :FPR = 1,TPR = 1,即全部预测P
(1,0) :FPR = 1,TPR = 0,即全部预测错了
(1,1) :FPR =1,TPR = 1, 即全部预测对了
代码(基于之前的数据结果):
from sklearn.metrics import roc_curve, roc_auc_score
y_probs = model_svm.predict_proba(X)
#print(y_probs)
#print(y_probs[:,1])
fpr,tpr,thresholds = roc_curve(y,y_probs[:,1],pos_label = 1)
plt.plot(fpr,tpr,marker = 'o')
plt.xlabel('fpr')
plt.ylabel('tpr')
plt.show()
auc_score = roc_auc_score(y,model_svm.predict(X))
print(auc_score)
#select the best threshold
J = tpr - fpr
idx = argmax(J)
best_threshold = thresholds[idx]