首页 > 解决方案 > scikit-learn:如何定义 ROC 曲线的阈值?

问题描述

在 中绘制 ROC(或导出 AUC)时scikit-learn,如何为指定任意阈值roc_curve,而不是让函数在内部计算它们并返回它们?

from sklearn.metrics import roc_curve
fpr,tpr,thresholds = roc_curve(y_true,y_pred)

在Scikit - How to define thresholds for plotting roc curve上提出了一个相关问题,但 OP 接受的答案表明他们的意图与它的编写方式不同。

谢谢!

标签: pythonscikit-learnroc

解决方案


您从分类器中得到的是分数,而不仅仅是类别预测。

roc_curve将为您提供一组具有相关误报率和真阳性率的阈值。

如果您想要自己的阈值,只需使用它:

y_class = y_pred > threshold

然后你可以显示一个混淆矩阵,与这个新的y_class比较y_true

如果你想要几个阈值,也可以这样做,并从每个阈值中获取混淆矩阵,以获得真假阳性率。


推荐阅读