特异性= 1-FPR
我将代码更改如下:
plt.plot(1-fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)
但是这个数字似乎是错误的。
这就是我在纸上看到的。
最佳答案
您对ROC曲线的理解有误。 ROC曲线绘制了在不同阈值下的真实阳性率(灵敏度)tpr = tp / (tp + fn)
以及错误阳性率(1-特异性)1 - (tn / (tn + fp)
。现在,我看到您的标题表明您想要“敏感性和特异性的ROC”,但实际上不存在这样的内容。解决敏感性和特异性的方法是通过ROC曲线。
为了获得ROC曲线,将图更改为:plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)
您可以从上面的说明中看到如何计算误报率和真正率。
然后,在解释ROC曲线时,您希望将分类器放置在尽可能靠近左上角的位置,以指示低的假阳性率(高特异性)和高的真阳性率(高灵敏度)。话虽如此,假阳性率并不代表特异性,而是代表阴性。这就是为什么您希望它最小化。
最后但并非最不重要的一点是,当涉及ROC曲线时,常常使人们感到困惑的情况是,当X轴上没有1 - specificity
时,而是使用specificity
。发生这种情况时,值的方向相反(如图所示),因此它从1变为0,而不是0变为1。
关于python - 如何得出灵敏度和特异性的ROC?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53915862/