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

时间:2018-11-16 09:40:24

标签: python scikit-learn roc

scikit-learn中绘制ROC(或推导AUC)时,如何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接受的答案表明他们的意图与写法不同。

谢谢!

2 个答案:

答案 0 :(得分:2)

从分类器中获得的是分数,而不仅仅是课堂预测。

roc_curve将为您提供一组阈值,以及相关的误报率和真正率。

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

y_class = y_pred > threshold

然后,您可以显示一个混淆矩阵,并将这个新的y_classy_true进行比较。

如果您想要几个阈值,请执行相同的操作,并从每个阈值中获取混淆矩阵,以得出真假肯定率。

答案 1 :(得分:-1)

这很简单。 ROC曲线显示不同阈值的输出。您总是为模型选择最佳阈值来获取预测,但是ROC曲线显示了模型对于不同阈值的稳健性/良好性。在这里,您可以很好地解释其工作原理:https://www.dataschool.io/roc-curves-and-auc-explained/