平衡与不平衡数据集上的训练模型?

数据挖掘 分类 阶级失衡 二进制
2022-03-01 15:41:15

假设我有一个 2 类分类问题,其中类分别A & B具有10*NN观察。

我很确定我的问题的答案取决于具体的分类问题和我的数据集的特征等。仍然可以对我的问题进行一般分析。?

我可以澄清的是,我有兴趣在两个课程中都有高召回率(“宏观平均召回率”);主要不是在少数类别中具有尽可能高的召回率,而是在不平衡的数据集分类问题中,例如垃圾邮件检测、金融欺诈检测或疾病检测。

因此,一般来说,为此训练我的模型是否更好:

1) A:10*N 次观察,B:N 次观察

2) A:5*N 次观察,B:N 次观察

3) A:N 个观测值,B:N 个观测值

我有一个印象,假设我们从一个平衡的数据集开始,那么你添加到一个类的数据越多越好,macro-average recall因为添加了新信息,但是在某一点之后,数据集变得如此不平衡,以至于模型在少数族裔可能会恶化,因此会macro-average recall下降。

我说得对吗?

2个回答

这是一个有趣的问题,但我认为答案可能令人失望:

通常,最大化召回率的问题是在权衡精度的背景下考虑的,即目标是通过预测更多的正例来牺牲一些精度,无论是真(TP)还是假(FP)。通常在二元问题中这是可能的,因为我们专注于一类重要而认为另一类无关紧要,因此其性能无关紧要。

这里我们有一个二元问题,我们希望最大化两个类的召回率,所以我们不能为了另一个而牺牲一个:一个类的召回率的任何增益都可能导致另一个类的召回率损失,因为预测对于 A 类来说,更多的正面实例将意味着 B 类的更多负面实例,反之亦然。如果我们在谈论微召回,我们仍然可以使用 A 类中更高的重要性,但对于宏观召回,我们不能。请注意,这是可以使用准确性的典型情况,因为它会给两个类赋予相同的权重,并且是一个更简单的度量。

所以提高宏观回忆的唯一方法是增加真阳性。让我们看看选项:

1) A:10*N 次观察,B:N 次观察

优点:A 类的性能最大化。缺点:B 类在比例上处于不利地位,因此可能会损失其性能。

2) A:5*N 次观察,B:N 次观察

缺点:A 级的优势稍差;亲:B类的劣势稍微少一点。

3) A:N 个观测值,B:N 个观测值

Pro:B类的最高性能;缺点:A类表现不佳。

实际上,最好的选择可能是对 A 使用所有 N*10 个实例,并为 B 重复 10 次 N 个实例,这样:

  • 学习方法可以从 A 的所有可用训练数据中受益
  • B 类没有成比例地处于不利地位。

但我的猜测是,无论如何它不太可能产生很大的影响。当涉及增加真阳性时,通常是功能和机器学习方法会产生影响。

如果您的数据不平衡,您也可以尝试 CalibratedClassifierCV。这些图对于获得数据的见解非常有用。