首页 > 解决方案 > 使用 sklearn 绘制 ROC 曲线

问题描述

我尝试用 sklearn 创建 ROC 曲线,下面是我的代码

from sklearn.metrics import roc_curve
fpr_keras, tpr_keras, thresholds_keras = roc_curve(validation_generator.classes, y_pred_label_indices)

当我打印

打印(fpr_keras):

[0.    0.48  0.568 0.584 0.632 0.648 0.664 0.68  0.992 0.992 1.    1.   ]

打印(tpr_keras)

[0.    0.    0.    0.    0.    0.    0.    0.    0.    0.016 0.016 1.   ]

打印(阈值_keras)

[2.0000000e+00 1.0000000e+00 9.9999988e-01 9.9999976e-01 9.9999893e-01
 9.9999881e-01 9.9999833e-01 9.9999821e-01 9.6940529e-01 6.8794215e-01
 5.7934558e-01 1.9927023e-05]

但是当我使用这段代码绘制它时:

plt.plot(fpr_keras, tpr_keras, thresholds_keras)
plt.plot([0,1], [0,1], 'r--')
plt.xlim([0, 1])
plt.ylim([0, 1])

我懂了 :

在此处输入图像描述

为什么会这样?,我的代码有问题吗?

标签: pythonscikit-learnroc

解决方案


ROC 曲线仅是 fpr 和 tpr 的图。要绘制 ROC 曲线,您应该这样做plt.plot(fpr,tpr)

但是,根据您提供的数据,ROC 曲线的结果非常糟糕。

现在,您在上面显示的图是

plt.plot([0,1], [0,1], 'r--') plt.xlim([0, 1]) plt.ylim([0, 1])只是不是 ROC 曲线

尝试分别运行这两个代码。你会明白的。


推荐阅读