校准的概率总是更可靠吗?

数据挖掘 机器学习 神经网络 概率校准
2021-09-18 15:10:12

编辑:根据下面的答案,我更新了问题并添加了更多细节。

我已将 Dirichlet 校准应用于我的快速 bert 情绪分类模型,我正在努力真正理解为什么/如果它实际上更可靠。

应用:

def dirichlet_scaling(train, y_train, test):
    logreg = LogisticRegression(multi_class='multinomial', solver ='newton-cg')
    logreg.fit(np.log(train), y_train)
    return logreg.predict_proba(np.log(test))

train -->验证集,大小 ~ 11000

test -->测试集,大小 ~ 7000

这些是未校准的概率可靠性图:

未校准的可靠性图

下面的分类图基于最近的这篇文章https://arxiv.org/abs/1910.12656

未校准的类可靠性图

评价指标:

评估指标 - 未校准

混淆矩阵:

混淆矩阵 - 未校准

在应用 Dirichlet 缩放后,根据文章,我得到了这些类可靠性:

Dirichlet Calibrated Classwise-reliability 图

和整体置信度校准:

狄利克雷校准可靠性图

狄利克雷评估指标:

狄利克雷校准度量

狄利克雷校准混淆矩阵

狄利克雷校准混淆矩阵

校准后,少数类 - 混合情绪 - 预测不太准确。下面的样本是具有高未校准概率 (> .9) 的混合样本。

这些情况无疑都是混杂的(甚至是不正确的标签)。然而,在校准之后,它们的预测可信度较低。

自信的少数群体预测样本

我的主要问题是:

估计器高估了少数类而低估了多数类,这平衡了类的不平衡——校准概率似乎在一定程度上扭转了这一点。

校准后,类别不平衡在预测中显得更加明显。我很可能错了,但类可靠性图中的错误校准似乎是包含类分布(类先验)的分类器。当不平衡的数据集被人为平衡时,通常不会重新引入类先验以平衡概率吗?这种技术是否也会减少校准?

分类器是否可能已经很好地校准了?如果整体置信度得到了很好的校准,那么在分类可靠性图中看到的高估/低估可能并不总是表明校准错误?

1个回答

结果对我来说似乎很合理,但根据您提供的信息,我无法确定。在您的结果表中,您显示了 10 个实例,其中混合类的未校准概率介于 0.97 和 0.99 之间。这意味着平均而言,人们预计这些实例中只有大约 2% 的错误分类。在您展示的小样本中,误分类率为 10%(十分之一),因为其中一个实例具有负标签。也许你随机选择了这 10 个实例,实际上在大多数其他大小为 10 的样本中,会有 2 或 3 个错误分类的实例?如果这是真的,那么 70% 或 80% 的概率确实会得到更好的校准。

然而,看看错误分类的实例,我不确定否定标签是否正确?也许它也应该混合?那么数据中是否也存在标签错误?校准将标签作为基本事实,因此如果您的模型的预测甚至比标签更好,那么置信度仍然会降低,因为校准是信任标签。

以上是我的简短回答,但下面我将尝试更详细地解释您的数据。

在您的任务中,您有 3 个类别:正面、负面和混合。为了更容易理解我的回答,让我先给你的人物起个名字:

  • 图 1a - 未校准预测的置信度直方图;
  • 图 1b - 未校准预测的置信度-可靠性图;
  • 图 2a、2b、2c - Neg、Pos、Mixed 类的未校准预测的类可靠性图;
  • 图 3a、3b、3c - Neg、Pos、Mixed 类的 Dirichlet 校准预测的类可靠性图;
  • 图 4a - Dirichlet 校准预测的置信度直方图;
  • 图 4b - Dirichlet 校准预测的置信度-可靠性图。

图 1a 显示绝大多数预测的置信度高于 0.9。图 1b 显示,在置信度最高的 bin(0.9 及以上)中,有一点点信心不足,因为蓝条(该 bin 内的实际准确度)似乎高于预测的(对角线上方)-这由红色间隙颜色与蓝色实际颜色混合以获得深红色来表示。由于差距很小,因此预测似乎得到了很好的置信度校准。

然而,查看分类可靠性图可以看出,负类的校准非常好(图 2a),而正类预测的信心不足(图 2b),混合类预测低于-自信(图2c)。图 3a、3b、3c 显示,在应用 Dirichlet 校准后,概率得到了更好的分类校准。

与图 1b 相比,图 4b 中的置信度-可靠性图显示了在较低置信度箱中的更好校准。然而,大多数预测仍处于置信度高于 0.9 的最高置信区间(图 1a)。在那个垃圾箱中,可能比校准前更不自信。对此的一个可能解释是,较低 bin 中损失的减少超过了最高 bin 中损失的微小增加。

仅根据图表和结果表,我无法确定是否正确应用了 Dirichlet 校准,但有可能一切都是正确的。分类校准似乎有改进,而且置信校准也可能有所改进。如果您可以提供更多信息,我可以尝试进一步解释结果: - 类别概率的类别直方图与图 2 和图 3 相符;- Dirichlet 校准的学习参数值;- 您校准和显示可靠性图的数据集的大小,也许还有类分布。


以下是基于混淆矩阵和评估措施的数字结果的更多想法,这些想法是在我上述回答之后添加到问题中的。

鉴于您报告的数字评估信息和分类校准图,我认为原始模型尚未校准。狄利克雷校准确实改进了校准。

似乎在 Dirichlet 校准后应用的所有措施都在改进,唯一的例外是混合类的准确性。我可以想到两个原因,这可能共同导致了这种效果。

首先,类别是不平衡的,因此大多数类别的准确度增加 1% 是分类器和校准器的价值,而少数类别的准确度下降超过 1%。您还没有指定确切的类分布,但是例如,如果正负类的大小与混合类的大小差异超过 3.5 倍,那么正负类准确率增加 1% 的价值超过混合类准确率下降 7% (3.5%+3.5%)。好吧,Dirichlet 校准是优化对数损失而不是精度,但要点大致相同。

其次,验证集中存在错误分类的实例。这会迫使校准器降低置信度,如我之前在上面的回答中所讨论的。

也许还有其他因素与不同类别的不同置信度分布有关。如果您要分别提供每个类别的预测类别概率的直方图(可能在校准之前和之后),则可以检查这一点。

如果您对在混合类中获得更好的准确度特别感兴趣,那么您需要在校准期间提升混合类的权重。理想情况下,校准不应推动整体类分布,但在某种程度上,由于参数化建模的限制,这可能会发生。我建议您在校准期间尝试对混合类进行过采样,使其与正负类的大小相同。