【问题标题】:What is a threshold in a Precision-Recall curve?Precision-Recall 曲线中的阈值是多少?
【发布时间】:2018-02-23 18:30:43
【问题描述】:

我知道 Precision 的概念以及 Recall 的概念。但我发现很难理解使任何 P-R 曲线成为可能的“阈值”的概念。

想象一下,我有一个模型要构建,该模型使用一些关于相关特征的体面分类算法来预测患者癌症的再次发生(是或否)。我将数据拆分用于训练和测试。假设我使用训练数据训练了模型,并使用测试数据获得了我的 Precision 和 Recall 指标。

但是我现在如何绘制 P-R 曲线?依据是什么?我只有两个值,一个精度和一个召回。我读到它的“阈值”可以让你获得几个精确召回对。但这个门槛是多少?我仍然是初学者,我无法理解阈值的概念。

我在很多分类模型比较中看到过,如下所示。但是他们是如何得到这么多对的呢?

Model Comparison Using Precision-Recall Curve

【问题讨论】:

    标签: machine-learning classification auc precision-recall model-comparison


    【解决方案1】:

    ROC 曲线:

    • x 轴:误报率 FPR = FP /(FP + TN) = FP / N
    • y 轴:真阳性率 TPR = Recall = TP /(TP + FN) = TP / P

    精确召回曲线:

    • x 轴:召回 = TP / (TP + FN) = TP / P = TPR
    • y 轴:精度 = TP / (TP + FP) = TP / PP

    您的癌症检测示例是一个二元分类问题。 你的预测是基于概率的。 (不)患癌症的概率。

    一般来说,如果 P(A) > 0.5(您的阈值),实例将被归类为 A。对于此值,您将获得基于 True Positives、True Negatives、False Positives 和 False Negatives 的 Recall-Precision 对。

    现在,当您更改 0.5 阈值时,您会得到不同的结果(不同的对)。如果 P(A) > 0.3,您已经可以将患者归类为“患有癌症”。 这将降低精确度并增加召回率。你宁愿告诉某人他有癌症,即使他没有,以确保癌症患者一定能得到他们需要的治疗。这代表了 TPR 和 FPR 或 Precision 和 Recall 或 Sensitivity 和 Speciality 之间的直观权衡。

    让我们添加这些术语,因为它们在生物统计学中更常见。

    • 灵敏度 = TP / P = 召回 = TPR
    • 特异性 = TN / N = (1 – FPR)

    ROC 曲线和 Precision-Recall 曲线可视化分类器的所有这些可能阈值。

    如果单靠准确性不是合适的质量衡量标准,您应该考虑这些指标。将所有患者分类为“没有癌症”将为您提供最高的准确度,但您的 ROC 和 Precision-Recall 曲线的值将是 1 和 0。

    【讨论】:

    • +1 以获得清晰的解释。但是,我有几个问题,如果我将患者分类为 P(A) > 0.3 的“患有癌症”,我实际上最终会将许多患者标记为癌症“阳性”,对吗?这意味着,误报率会很高,导致精度低。我在这里错过了什么吗?
    • 好吧,在此之前,我假设当您在精确召回曲线中从左到右移动时,您的阈值会增加。这是一个有效的假设吗?
    • 是的,你是对的,我的错误,我把它弄混了。 FP 上升 -> 精度下降。第二条评论也是正确的。 :)
    • 你的帖子是对的。降低阈值 - 提高精度。这是一个悖论。当阈值较低时,我们最终将许多患者标记为阳性,这当然会增加假阳性的数量,但它也会增加真阳性的数量,特别是当我们存在类别不平衡时(其中更多的阳性在数据集而不是 Negatives),我们最终得到了大部分的预测,这完全是偶然的。结论 - FP增加但TP的增加主导FP,因此选择较低阈值时的精度增加。如果我错了,请纠正我。
    • 不,召回率会很高。正如您在第一条评论中所注意到的那样,精度会很低。
    猜你喜欢
    • 2021-05-19
    • 2021-07-31
    • 2017-01-23
    • 2015-10-03
    • 2019-06-22
    • 2014-01-09
    • 2014-12-22
    • 2019-06-01
    相关资源
    最近更新 更多