训练集中有多少不平衡是个问题?

数据挖掘 分类 阶级失衡
2022-03-09 14:13:49

在一个简单的二元分类问题中,多数类到少数类在什么时候变得显着变得显着?直觉上,我认为 3:1 的比例不会成为问题,甚至可能不是 10:1 的比例。但是 100:1 的比例确实需要采取一些措施。这个截止点可能是什么?

作为后续,除了欠采样和过采样之外,还有哪些潜在的解决方案?

1个回答

没有严格的阈值可以认为数据集是不平衡的。因此,在不平衡学习的基础中, Gary M. Weiss 写道:

对于将数据集视为真正“不平衡”所需的类别不平衡的确切程度,没有达成一致或标准。但大多数从业者肯定会同意,最常见的类比最稀有的类少两倍的数据集只是轻微不平衡,不平衡比率约为 10:1 的数据集会适度不平衡,而数据集不平衡比超过 1000:1 将是极其不平衡的。但最终我们关心的是这种不平衡如何影响学习,尤其是学习稀有课程的能力。

一种实用的方法可能是将您的模型拟合到不平衡的数据集上,并检查不平衡是否会导致类之间的性能差异很大。但请记住,最终目标是最小化错误分类成本。因此,如果类具有相同的误分类成本,则类之间的性能差异不一定是问题(通常对于不平衡的数据集,基本假设是误分类成本不是均匀分布的,即假设少数类的误分类成本更高)。

为了处理不平衡的数据集,基于采样的方法是最常见的,但它们不仅限于欠采样和过采样。还有混合(例如SMOTE+Tomek)和基于 Ensemble 的方法(例如BalancedRandomForest)。

此外,还有一些算法方法,包括成本敏感的学习(例如加权随机森林)和偏斜不敏感的学习(例如朴素贝叶斯)。

最后,您可以调整要使用的性能指标。AUROC 和 ROC 曲线通常用于不平衡的数据集。但是,它们也可能有偏见。这就是为什么一些作者建议改用 Precision-Recall-Curves 和 AUC-PR 的原因。此外,Precision、Recall 和 F1 分数也很常见。

但是请注意,仅使用不同的性能指标进行模型选择和模型评估不会使您的模型在训练时在内部针对这些进行优化。这就是为什么其他方法,尤其是采样如此频繁使用的原因。