【问题标题】:scikit-learn: How do I define the thresholds for the ROC curve?scikit-learn:如何定义 ROC 曲线的阈值?
【发布时间】:2019-04-19 11:29:47
【问题描述】:

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

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 接受的答案表明他们的意图与编写方式不同。

谢谢!

【问题讨论】:

    标签: python scikit-learn roc


    【解决方案1】:

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

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

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

    y_class = y_pred > threshold
    

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

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

    【讨论】:

    • 非常感谢 - 这是 (a) 我需要了解 scikit-learnroc_curve 函数和 (b) 告诉我在哪里(在我的情况下)我只有离散我必须通过一组混淆矩阵来滚动我自己的 ROC 曲线,而不是预测概率。再次感谢! :)
    【解决方案2】:

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

    【讨论】:

    • 感谢您提供信息 - 我更多的是询问如何在 scikit-learn 中为 ROC 曲线计算指定任意阈值,而不是 ROC 和 AUC 一般如何工作。
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 2016-08-24
    • 2013-10-08
    • 2019-03-10
    • 2013-04-27
    • 2015-06-23
    • 2018-07-30
    • 2015-07-06
    相关资源
    最近更新 更多