【问题标题】:Shape of ROC curveROC曲线的形状
【发布时间】:2022-05-04 20:11:18
【问题描述】:

我对一个数据集进行了预测分析并绘制了 ROC 曲线。

ROC 曲线如下图所示,

我不太确定曲线的形状。它不需要是波浪曲线。但是看看治疗方法,我们可以决定,这有一个问题。我得到了大约 71% 的准确率,这对我来说没问题。但我担心曲线的形状,它不是波浪形的。例如,如下所示。 (取自网络)

【问题讨论】:

    标签: machine-learning roc


    【解决方案1】:

    看起来你只绘制了三个点。 ROC 曲线的想法是显示当您调整决策阈值以建立每个点的性能时 FP/TP 比率如何变化。如果没有有关您如何绘制此图或您拥有哪些参数的信息,就很难再说什么了。

    一个典型的例子是调整攻击性级别——如果您有一个垃圾邮件扫描器,它会在特定分数下将其分类为垃圾邮件,那么更改分数阈值会如何改变 TP/FP 率?因此,X 轴也将有效地显示阈值设置(但可能以某种方式拉伸),并且每个点的曲线将显示干净集合中有多少样本将是该阈值的 FP,以及垃圾邮件集合中有多少将被正确阻止。

    (“拉伸”意味着阈值设置可能不会线性映射到 FP 速率。如果阈值 0.950 和 0.975 之间没有发生任何事情,则根本不会在 x 轴上绘制该间隔。x 轴上的点是TP/FP率变化的阈值;有的阈值可能非常接近,而其他相邻点可能对应阈值的较大跳跃。)

    良好的 ROC 曲线在其下方具有较大的区域。一个理想的 ROC 从 0 到 1.00 并保持在那里,但是您不需要该图来帮助您决定如何部署您的解决方案。但实际上,它们会以各种形状出现,从向左上角模糊渐近(非常好)到直对角线(非常糟糕),甚至向右下角渐近(极差;随机判断会更好)。有趣的点是 TP 率增长放缓而 FP 率开始增长更快的“拐点”(这是您应该停止增加阈值的地方)以及任何不规则性,尤其是任何打破单调性的地方。

    (在您的网络示例中,在 TP 0.6 附近有一个点,增加阈值只会增加 FP。为什么会这样?样本中是否存在偏差,或者实现中存在问题?可以修复吗? ?)

    【讨论】:

    • 通常不会调整“a”参数,而是专门调整决策阈值。无论如何,这就是您稍后描述的内容,但是第一句话有点令人困惑。
    • 在 ROC 曲线中,直对角线被认为是随机的,右下角被认为是好的。对于二元分类器,曲线沿对角线对称,如果它位于右下角,您可以轻松地反转类标签并获得良好的 ROC AUC 数。就 ROC AUC 值而言,1 是完美的,接近 0.5 被认为是随机的,任何小于 0.5 的值都可以从 1 中减去以获得真实值。
    • """最小 AUC 应被视为机会水平,即 AUC=0.5 而 AUC=0 意味着测试错误地将所有患病受试者分类为阴性,将所有未患病受试者分类为阳性,这极不可能发生在临床实践中。""" ncbi.nlm.nih.gov/pmc/articles/PMC3755824
    【解决方案2】:

    看起来您使用分类器的预测类(python 的 sklearn 包中的.predict 函数)而不是预测的类概率(python 的 sklearn 包中的.predict_proba 函数)绘制了点。这意味着当类从 0 切换到 1 时,只有一个阈值发生变化,而不是可以为您提供平滑曲线的值范围。

    用你的预测概率替换你的预测类,这应该可以解决你的问题。

    【讨论】:

      猜你喜欢
      • 2019-02-27
      • 2018-01-03
      • 2019-12-26
      • 2014-07-20
      • 2012-05-02
      • 2018-04-25
      • 2019-02-09
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多