roc曲线怎么绘制_ROC曲线绘制⽅法
ROC(Receiver Operating Characteristic)曲线即受试者⼯作特征曲线。ROC曲线与坐标轴围成的⾯积被称为AUC(Area Under Curve),这两个指标和敏感性、特异性和准确性⼀起,是评估算法模型性能常⽤的指标。
错题本样板在进⼀步介绍ROC曲线如何绘制之前,先引⼊⼏个概念。TP(True Positives),TN(True Negatives),FP(Fal
Positives),FN(Fal Negatives) 分别为阳性样本正确分类数量、阴性样本正确分类数量、阳性样本错误分类数量以及阴性样本错误分类数量。
阳性样本正确分类数量占阳性样本总数的⽐例TPR(即敏感性,Sensitivity),阴性样本正确分类的数量占阴性样本总数的⽐例FPR(即1-特异性,1-Specificity)计算如下:
(阳性样本被判断为阳性/阳性样本总数)
(阴性样本被判断为阳性/阴性样本总数)潜意识是什么意思
ROC曲线横坐标为FPR,纵坐标为TPR。ROC曲线直观上反映了模型在选择不同阈值的时候敏感性与1-特异性的趋势⾛向。
绘制ROC曲线需要得到输出结果的概率。对于普通数值型输⼊,模型测试时在输出部分增加softmax函数,然后取阳性概率值。
GT = torch.FloatTensor()
PD = torch.FloatTensor()
output_sfmx = torch.softmax(logits, dim=1)[:,1] # 取输出结果的概率,并取第⼆列
紫色用英语怎么读
PD = torch.cat((PD, output_sfmx.data.cpu()),0) # ⽬标值
GT = torch.cat((GT, label.float().cpu()),0)
roc_data = {'pd':PD,'gt':GT}
df = pd.DataFrame(roc_data) # 把输出的概率和⽬标组合称DataFrame形式,然后保存,⽤于下⼀步绘制ROC去曲线
till和until的区别<_csv('.resultsroc_data_bce_%d.csv' % k)
得到⽬标值和输出概率之后,借助于ics中的roc_curve和auc⽅法进⾏绘图和计算。
import pandas as pd
黄山的怪石
from matplotlib import pyplot as plt
ics import roc_curve, auc
import os
plt.style.u('classic')90年代经典歌曲100首
path = r'C:UrsPhantomDesktoproc_datatable1'
files = os.listdir(path)
fprs = []
tprs = []
aucs=[]
for i,file in enumerate(files):
pf = os.path.join(path,file)
df = pd.read_csv(pf)
pred = df.iloc[:, 1].tolist()
target = df.iloc[:, 2].tolist()
fpr, tpr, thresholds = roc_curve(target,pred) #计算fpr和tpr,⽤于下⼀步绘图和AUC计算 fprs.append(fpr)
tprs.append(tpr)
aucs.append(auc(fpr,tpr)) # 计算AUC值
plt.plot(fprs[0],tprs[0], lw=1.5, label="W-Y, AUC=%.3f)"%aucs[0])
plt.plot(fprs[1],tprs[1], lw=1.5, label="Y-Y, AUC=%.3f)"%aucs[1] )
篮球场
plt.plot(fprs[2],tprs[2], lw=1.5, label="W-W, AUC=%.3f)"%aucs[2] )
plt.xlabel("FPR",fontsize=15)
plt.ylabel("TPR",fontsize=15)
plt.title("ROC")
领导科学与艺术plt.legend(loc="lower right")
plt.show()
最后结果:
参考: