scikit-learn:如何定义 ROC 曲线的阈值?

scikit-learn: How do I define the thresholds for the ROC curve?

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

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

上提出了一个相关问题,但 OP 接受的答案表明他们的意图与写法不同。

谢谢!

您从 classifier 得到的是分数,而不仅仅是 class 预测。

roc_curve 将为您提供一组阈值以及相关的假阳性率和真阳性率。

如果你想要自己的阈值,就用它:

y_class = y_pred > threshold

然后你可以显示一个混淆矩阵,这个新的 y_classy_true 相比。

如果你想要多个阈值,做同样的事情,并从每个阈值中获取混淆矩阵以获得真假阳性率。

很简单。 ROC 曲线显示不同阈值的输出。您总是为您的模型选择最佳阈值以获得预测,但 ROC 曲线向您显示 robust/good 您的模型如何针对不同的阈值。在这里你有很好的解释它是如何工作的:https://www.dataschool.io/roc-curves-and-auc-explained/