确定用于多类分类的一对一/一对一 ROC 曲线的最佳阈值

数据挖掘 分类 多类分类
2022-02-14 11:38:31

假设我有一个类的多类分类问题N我已经在训练集上训练了分类器,我使用验证集和 One-vs-rest ROC 曲线来给我NROC 曲线。

由于 ROC 曲线是根据我们将样本分类为的不同阈值创建的Ci或不Ci. 然后我们可以选择(我们的)最佳 FPR/TRP 比率并获得阈值(t)例如,假设t=0.6我们将样本分类为Ci如果model_score>=0.6其他“其余”即不是Ci. (这张图片上的蓝色标记来自 sklearn) 在此处输入图像描述

问题是,在多类问题中,我们可以使用例如 one-vs-rest 并创建NROC 曲线(见下文,也来自 sklearn)

在此处输入图像描述

现在我们有N不同的阈值(在图中,N=3因为我们有三个类)。假设我们在 one-vs-rest 中已将类的最佳阈值定义为

t1 = 0.8 (Class 1 vs rest)
t2 = 0.6 (Class 2 vs rest)
t3 = 0.4 (class 3 vs rest)

我们得到一个新样本,因此模型分数S= [0.3,0.4,0.3]根据阈值,我们不会将其标记为任何类别,因为没有分数高于阈值。

1个回答

在不修改假设或模型的情况下,有两种选择:

  1. 系统返回最佳单次猜测。例如,第 2 类,因为那是最佳模型的最大概率。
  2. 系统返回“没有足够的信心做出预测”。