特异性= 1-FPR
我将代码更改如下:

plt.plot(1-fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)


但是这个数字似乎是错误的。
python - 如何得出灵敏度和特异性的ROC?-LMLPHP

这就是我在纸上看到的。
python - 如何得出灵敏度和特异性的ROC?-LMLPHP

最佳答案

您对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/

10-12 20:39