对不平衡数据进行上采样或下采样真的那么有效吗?为什么?

机器算法验证 分类 不平衡类
2022-03-01 22:20:39

我经常听到讨论数据的上采样或下采样作为处理不平衡数据分类的一种方式。

我知道如果您使用二进制(而不是基于概率或基于分数的)分类器并将其视为黑盒,这可能很有用,因此采样方案是您调整其在“ROC 曲线”上的位置的唯一方法"(加引号是因为如果你的分类器本质上是二元的,我猜它没有真正的 ROC 曲线,但权衡误报和误报的相同概念仍然适用)。

但是,如果您实际上可以访问某种分数,而您稍后会对其进行阈值化以做出决定,那么似乎同样的理由并不成立。在这种情况下,当您拥有更好的工具(例如实际的 ROC 分析)时,上采样不只是一种临时的方式来表达您希望在误报和误报之间进行权衡的方式吗?在这种情况下,除了改变分类器在每个类上的“先验”(即成为该类的无条件概率,基线预测)之外,期望上采样或下采样做任何事情似乎很奇怪——我不会不要期望它改变分类器的“优势比”(分类器根据协变量调整其基线预测的程度)。

所以我的问题是:如果您有一个不是二进制黑盒的分类器,是否有任何理由期望上采样或下采样比根据您的喜好调整阈值具有更好的效果?如果做不到这一点,是否有任何实证研究表明上采样或下采样对合理的性能指标(例如,不准确)有相当大的影响?

2个回答

简短的回答似乎是肯定的:有一些证据表明,在训练集中对少数类进行上采样和/或对多数类进行下采样可以在一定程度上改善样本外 AUC(ROC 曲线下的面积,与阈值无关metric)甚至在未改变的、不平衡的数据分布上

话虽如此,在我看到的大多数或所有示例中,AUC 的增加非常温和——典型的“最佳情况”(即,在作者检查的所有模型和抽样方法中最好的情况)将是,比如说,没有上/下采样的 AUC = .91 与有上/下采样的 AUC = .93。我还没有看到任何应用上/下采样可以在任何情况下将坏 AUC 变成好的 AUC 的例子。我也不知道有证据表明上采样/下采样可以在严格适当的评分规则(如Brier 分数)下提高泛化能力(有关更多信息,请参阅这个很好的答案)。

一些证据

  • 我见过的最直接的证据,也是唯一包含一些理论分析的证据,来自这篇论文Why Does Rebalancing Class-Unbalanced Data Improvement AUC for Linear Discriminant Analysis?. 作者表明,当在具有不等协方差矩阵的两个高斯类上使用 LDA 时(与 LDA 的假设相反),实现 50:50 类平衡的简单上采样和简单下采样(没有什么比 SMOTE 更好都可以提高不平衡数据的泛化能力分配。这是一个关键人物:

在此处输入图像描述

  • 在这篇论文处理客户流失预测中的类别不平衡,作者检查了简单的下采样(“欠采样”)和称为 CUBE 的“高级欠采样方法”,用于逻辑回归和随机森林。他们得出结论,下采样有帮助,但 CUBE 似乎并没有在任何有意义的程度上改善简单的下采样。在这个关键图中,每条曲线上最左边的点是未更改的数据集,没有下采样: 在此处输入图像描述

  • 这个来自不平衡学习 Python 包文档的示例中,作者检查了 K 最近邻分类器在三种复杂的上/下采样方法以及基线(无上/下采样)下的 AUC 性能。这是显示 ROC 曲线的关键图: 在此处输入图像描述

  • 我发现这个 R 笔记本着眼于逻辑回归,比较了基线的交叉验证 AUC(无上/下采样)与简单下采样与更复杂的上采样方法 ROSE。作者得出的结论是,简单的下采样总体上没有太大帮助,但 ROSE 会导致总体上更好的 ROC 曲线。在下面的关键图中,

    • 绿色曲线 = ROSE (AUC = .639)
    • 黑色曲线 = 基线 (AUC = .587)
    • 红色曲线 = 简单下采样 (AUC = .575) 在此处输入图像描述

如果您想首先收集样本以根据这些结果进行分类,那么即使从成本的角度来看,也可能需要进行欠采样。

但在这种情况下,您的估计方法通常不会返回总体水平概率,它们取决于所使用的抽样方案。

这是示例:

https://stats.stackexchange.com/questions/127476/inference-possibilities-for-matched-case-control-study