3 类朴素贝叶斯 ROC 曲线的决策阈值

机器算法验证 机器学习 分类 朴素贝叶斯 奥克
2022-03-23 05:22:37

我对如何构建 3 类分类器(朴素贝叶斯)的 ROC 曲线有一些疑问。

基本上,给定一些测试数据,分类器输出 3 个可能类别中的每一个的概率。为了生成用于绘制 ROC 曲线的点,我将决策阈值 th 从 0.1 增加到 1.0,并为 3 个类中的每一个计算 FPR、TPR(使用一对一的方法,因为 ROC 曲线用于二进制分类)。

问题是:假设在 0.5 的决策阈值下,我们从类 1 中获取数据,分类器输出的类概率分别为 0.3、0.4 和 0.3。由于没有超过决策阈值的概率,我是否应该不分类这些数据?我是否应该将此数据分类到概率最大的类别中,即使此类概率低于阈值?

最后一个问题:是否应该在计算 ROC 点之前校准朴素贝叶斯概率?

1个回答

正如我所看到的,拒绝分类为“太不确定”的可能性是选择阈值的重点(而不是分配具有最高预测概率的类别)。

当然,您应该有一些理由将阈值设置为 0.5:您也可以将其设置为 0.9 或任何其他合理的值。

您描述了具有互斥类的设置(封闭世界问题)。只要阈值高于 1/,“没有类达到阈值”总是会发生nclasses,即同样的问题出现在阈值为 0.9 的 2 类问题中。对于阈值 = 1/nclasses这在理论上可能发生,但在实践中极不可能发生。

因此,您的问题与 3 类设置无关(只是更明显)。

对于您的第二个问题:您可以计算任何类型的连续输出分数的 ROC 曲线,它们甚至不需要声称它们是概率。就个人而言,我不校准,因为我不想在上面浪费另一个测试集(我使用非常有限的样本量)。无论如何,中华民国的形状不会改变。

回答您的评论:ROC 在概念上属于在我的领域称为单类分类的设置:患者是否患有特定疾病从这个角度来看,您可以指定患者确实患有该疾病的 10% 概率。但这并不意味着他有 90% 的可能性已经定义了某些东西——互补的 90% 实际上属于“虚拟”类别:没有那种疾病。对于某些疾病和测试,找到每个人可能非常重要,以至于您将工作点设置为 0.1 的阈值。您选择极端工作点的教科书示例是献血中的 HIV 检测。

因此,为了构建 A 类的 ROC(你会说:患者是 A 阳性),你只看 A 类的后验概率。对于概率(非 A)= 1 - 概率 (A) 的二进制分类,您不需要绘制第二个 ROC,因为它不包含任何无法从第一个 ROC 轻松访问的信息。

在您的 3 类设置中,您可以为每个类绘制一个 ROC。根据您选择阈值的方式,可能会导致没有分类、仅分配一个类别或分配多个类别。什么是明智的取决于你的问题。例如,如果类别是“肝炎”、“HIV”和“断臂”,那么该策略是适当的,因为患者可能没有或所有这些。