我们真的应该在类不平衡数据中进行重采样吗?

机器算法验证 机器学习 不平衡类 重采样
2022-03-14 11:16:12

我从事 ML 已经有一段时间了,我有一个关于班级不平衡问题的想法,这让我很困扰。

在我们有不平衡数据集的问题(一个类比另一个类更频繁)的问题中,我们有一个使用类不平衡技术来缓解它的整个领域。就像重采样一样,在训练时在 ML 算法中按类大小添加类权重,生成少数类 (SMOTE) 的合成实例等。

但我的问题是我们为训练数据做了所有这些。现实世界的测试数据是不平衡的。不应该修改训练数据以使其平衡,以便它仍然模仿现实世界的数据吗?

是的,我知道上述技术如何提供帮助。我的观点是,如果现实世界的数据将看到更少的少数族裔,这会使数据产生偏差。在训练中,我们通过让算法看到的数据比它在现实生活中看到的更多,从而使数据产生偏差。

这里的正确方法是什么?

2个回答

在现实世界中,许多不平衡的类别问题都以错误分类为代价。少数类可能很少见,但该类的出现会产生非常大的影响。少数类通常是要避免或获得的“目标/点”,而不是“一些无用的噪音类”。

这足以证明重新采样的合理性:您希望算法能够不对少数类进行错误分类。看到不平衡类数据的算法在是否应将观察分类为少数方面的信息较少。最后,它通常只会将它们标记为多数类。

我的观点是,如果现实世界的数据将看到更少的少数族裔,这会使数据产生偏差。在训练中,我们通过让算法看到的数据比它在现实生活中看到的更多,从而使数据产生偏差。

拥有算法的关键在于使用它的预测能力您将希望算法能够正确预测,仅此而已。

算法是否看到现实生活中的数据并不是重点。如果这重点,那么也要告别特征工程。


ps:

我们可以扩展这一点并推断人类如何看待不平衡的数据。人类也(有点)做“重新采样/加权”,通过更强烈地记住“罕见但有很大影响”的事情,而不是“每天发生的无聊的事情”。它平衡,因此人类既记得“发生并改变了我生活的一件事”和“我通常每天做的事情”。

我不确定这是否是一个答案,但我会投入两分钱。

现实世界的测试数据是不平衡的。不应该修改训练数据以使其平衡,以便它仍然模仿现实世界的数据吗?

您指的是现实世界中课程的普遍性。当您为医学诊断(例如心脏病发作的风险)进行风险建模之类的工作时,这一点很重要。如果正面类别的流行率很低,您的风险模型应该尊重这一点。为了实现类平衡而重新抽样人为地将基线风险增加到 50%。

然而,分类是不同的。Frank Harrell 写道,只有在类别非常明显并且信噪比很高(例如,这是否是狗的照片)时才应该使用分类。在这种情况下,流行应该不是问题。您希望您的算法能够学习类之间的差异,并且在我自己看来,它们在现实世界中的流行与该目标正交。

与所有事情一样,答案取决于您在做什么。如果事件发生的风险很重要,并且类别很少,那么重采样可能会使一个非常好的模型变坏。但是,如果您只是想让您的计算机区分吉娃娃和蓝莓松饼,那么两者在现实世界中的流行程度并不重要。