我应该什么时候平衡训练数据集中的类?

机器算法验证 机器学习 分类 不平衡类
2022-02-08 12:26:40

我有一个在线课程,在那里我了解到,训练数据中的不平衡类可能会导致问题,因为分类算法遵循多数规则,因为如果不平衡太多,它会给出很好的结果。在一项任务中,必须通过对多数类进行欠采样来平衡数据。

然而,在这个博客中,有人声称平衡数据更糟糕:

https://matloff.wordpress.com/2015/09/29/unbalanced-data-is-a-problem-no-balanced-data-is-worse/

那么是哪一个呢?我是否应该平衡数据?它是否取决于所使用的算法,因为有些人可能能够擅长类的不平衡比例?如果是这样,哪些对不平衡数据是可靠的?

4个回答

博文中已经解释了直观的推理:

如果我们的目标是预测,这将导致一定的偏差。更糟糕的是,这将是一个永久的偏差,因为随着样本量的增加,我们将不会有一致的估计。

因此,可以说(人为)平衡数据的问题比不平衡的情况更糟。

平衡数据有利于分类,但您显然会丢失有关出现频率的信息,这将影响准确度指标本身以及生产性能。

假设您正在识别来自英文字母(26 个字母)的手写字母。过度平衡每个字母的外观将使每个字母被分类(正确与否)的概率大约为 1/26,因此分类器将忘记原始样本中字母的实际分布。分类器能够以高精度概括和识别每个字母时就可以

但是如果准确性和最重要的概括不是“那么高”(我不能给你一个定义——你可以把它想象成一个“最坏的情况”)——错误分类的点很可能会平均分布在所有字母中, 就像是:

"A" was misclassified 10 times
"B" was misclassified 10 times
"C" was misclassified 11 times
"D" was misclassified 10 times
...and so on

与没有平衡相反(假设“A”和“C”在文本中出现的概率要高得多)

"A" was misclassified 3 times
"B" was misclassified 14 times
"C" was misclassified 3 times
"D" was misclassified 14 times
...and so on

因此,频繁的案例将得到更少的错误分类。好不好就看你的任务了。对于自然文本识别,人们可能会争辩说频率较高的字母更可行,因为它们会保留原始文本的语义,使识别任务更接近于预测(语义代表趋势)。但是,如果您尝试识别ECDSA 密钥的屏幕截图(更多熵 -> 更少预测) - 保持数据不平衡将无济于事。所以,再次,这取决于。

最重要的区别是准确度估计本身是有偏差的(正如您在平衡字母表示例中看到的那样),因此您不知道模型的行为如何受到最罕见或最频繁点的影响。

PS 您始终可以先使用Precision/Recall指标跟踪不平衡分类的性能,然后决定是否需要添加平衡。


编辑:在估计理论中存在额外的混淆,正是样本均值和总体均值之间的差异。例如,您可能知道(可以说)英文字母在字母表中的实际分布,但您的样本(训练集)不足以正确估计它(使用)。因此,为了补偿 ,有时建议根据总体本身或从更大样本中已知的参数重新平衡类p(xi|θ)p(xi|θ^)θ^iθi(因此更好的估计器)。然而,在实践中,由于每一步都存在偏差数据的风险(假设从技术文献、小说和整个图书馆中收集的英文字母),因此无法保证“更大的样本”是相同分布的,因此平衡仍然可能是有害的。

该答案还应阐明平衡的适用性标准:

类不平衡问题是由于没有足够的属于少数类的模式造成的,而不是由于正负模式本身的比率本身。一般来说,如果你有足够的数据,就不会出现“类不平衡问题”

作为结论,如果训练集足够大,人工平衡很少有用。没有来自较大同分布样本的统计数据也表明不需要人工平衡(尤其是预测),否则估计器的质量与“遇到恐龙的概率”一样好:

在街上遇到恐龙的概率是多少?

1/2 你要么遇到恐龙,要么没有遇到恐龙

与@kjetil-b-halvorsen 的评论一致,机器学习的迅速采用使研究人员对预测与分类感到困惑。正如我在此处更详细描述的那样,分类仅适用于少数情况。当结果很少(或太常见)时,概率就是一切,因为在这种情况下,人们只能合理地谈论趋势,而不是预测个别事件。

在统计学中,我们不久前了解到,任何需要排除某些数据的方法都是高度可疑的。因此,平衡结果的目标是错误的。趋势(概率)的预测不需要它。一旦您估计了一个概率,您就可以通过将效用/成本/损失函数应用于预测的风险来做出最佳决策。

取决于你想从分类中实现什么?

说它是癌症与非癌症,那么检测癌症至关重要。然而,由于非癌症将构成您的大部分数据,分类器基本上可以将所有病例发送到非癌症类别并获得非常高的准确度。但我们负担不起,所以我们基本上对非癌症病例进行抽样,基本上将决策边界从癌症区域移到非癌症区域。

即使在准确性是我们唯一目标的用例中,如果预计测试时间平衡与训练时间不同,平衡也是必不可少的。

例如,假设您要对芒果和橙子进行分类,您有一个包含 900 个芒果和 30 个橙子的训练数据集,但您希望将其部署在具有相同芒果和橙子的市场中,那么理想情况下您应该以预期的样本比率进行采样以最大化准确性。

当您的数据平衡时,您可能更愿意检查指标的准确性。但是当这种情况下你的数据不平衡时,你的准确性对于不同的迭代是不一致的。你需要集中更多的指标,比如 Precision(PPR)、Recall(sensitivity)。这两个指标在比较时应该平衡。您还应该检查 F1 分数,它是精度和召回率的调和平均值。这适用于所有机器学习算法