基于ROC改变分类器阈值

机器算法验证 神经网络 随机森林
2022-03-14 08:32:33

我训练了一个神经网络来对数据进行分类。我的数据集由大约 75% 的 1 类数据和 25% 的 2 类数据组成。经过训练,网络显示出 84.4% 的准确率。由于这些类不包含等量的数据,我还决定查看 ROC 曲线。我网络的最后一层使用了 softmax,因此我可以将输出解释为概率。

您可以在下图中的蓝线中找到它。

此外,我在那里绘制了网络的准确性与阈值的关系。所以 x 和 y 轴在这里必须有意义:对于蓝色曲线,x 和 y 轴分别是假阳性率和真阳性率。对于绿色曲线,x 轴是阈值,y 轴是网络的准确度。

如果选择阈值,蓝点表示阈值/准确度 (FPR/TPR)T1=0.5. 我还标记了这个点,它标记了最高的准确率,即 85.1%(红色)。当您最小化 ROC 曲线与点 (0,1) 之间的距离时,您会得到灰点。它对应的准确率为 82.2%。

大鹏曲线

现在的问题:

  1. 改变阈值以最大限度地提高准确性是否在某种意义上有意义,还是应该始终坚持 0.5?
  2. 如果是这样,应该怎么做?如果要调整阈值,我假设这必须使用保留的数据集而不是测试集来完成。在此示例中,标准“最小化到 (0,1) 的距离”提供的结果比标准的 0.5 阈值差。仅仅寻找一个可以提高准确率的阈值一开始似乎是个好主意,但后来它与 ROC 曲线无关。这条曲线是如何发挥作用的?
  3. 如果我使用随机森林,解释会有什么变化?当我尝试它时,曲线看起来非常相似,即略高于 0.5 的阈值会产生更高的准确度。
  4. roc曲线下的面积如何帮助我提高精度?为什么看它甚至很有趣?最后,分类器中有一个固定阈值,那么为什么我对其他阈值的表现感兴趣呢?
1个回答

准确度(或 ROC 曲线下面积)取决于用于构建 ROC 曲线的样本(例如,参见如何解释 ROC 曲线下面积的 95% 置信区间?)。因此,如果您使用此 ROC 来优化阈值,则存在过度拟合样本的风险。

您确实可以使用保留数据集“校准”阈值。您也可以使用 k 折交叉验证。与 ROC 曲线的联系在于 ROC 曲线下面积与准确率之间存在联系(AR=2AUC1)。

ROC 下的面积(AUROC 或 AUC)与准确率相关联。曲线下面积可以解释如下:在所有可能的配对中,有一个 1 类受试者和一个 2 类受试者,有一个分数等于 AUC,1 类受试者将获得更好的分数。

当您使用随机森林时,这种解释是相同的。

您可以在本文中找到更多关于这一切的信息