python - 使用 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])
我懂了 :
为什么会这样?,我的代码有问题吗?
解决方案
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 曲线
尝试分别运行这两个代码。你会明白的。
推荐阅读
- c++ - 如何在 C++ 中处理 -nan 输出
- javascript - WEB API - 如何使用身份为用户中的自定义属性添加值
- php - 如何使用 PHP 仅缩小指定的文件/页面的一部分
- javascript - 将 Array Objects 键值对属性转换为单个键值对并再次将其插入数组
- c - 使用 execvp() 运行 'wc' 可以识别 /home/usr/foo.txt 但不能识别 ~/foo.txt
- javascript - getScript 多个文件不起作用
- python - 逐行读取文本文件并在 Python 中存储匹配特定模式的变量
- react-native - 更改场景标题元素的文本颜色
- css - 如何在 vuetify 中使用动画材质图标
- r - 月级别在 R 中以日级别汇总