我们什么时候应该将数据集视为不平衡的?

数据挖掘 分类 数据集 采样 阶级失衡
2021-10-07 01:45:51

我正面临数据集中正面和负面示例的数量不平衡的情况。

我的问题是,是否有任何经验法则告诉我们何时应该对大类别进行二次抽样,以便在数据集中强制进行某种平衡。

例子:

  • 如果正例数为 1,000,负例数为 10,000,我应该在完整数据集上训练分类器还是应该对负例进行二次抽样?
  • 对于 1,000 个正例和 100,000 个负例,同样的问题。
  • 10,000 个阳性和 1,000 个阴性的相同问题。
  • 等等...
3个回答

我认为二次采样(下采样)是一种在基础级别控制类不平衡的流行方法,这意味着它可以解决问题的根源。因此,对于您的所有示例,每次随机选择大多数班级的 1,000 个都是可行的。您甚至可以制作 10 个模型(1000 个多数与 1000 个少数的 10 倍),这样您就可以使用整个数据集。您可以使用这种方法,但是除非您尝试一些集成方法,否则您会再次丢弃 9,000 个样本。容易修复,但很难根据您的数据获得最佳模型。

您需要控制班级不平衡的程度主要取决于您的目标。如果您关心纯分类,那么不平衡会影响大多数技术的 50% 概率截止,所以我会考虑下采样。如果您只关心分类的顺序(希望阳性通常高于阴性)并使用诸如 AUC 之类的度量,则类别不平衡只会影响您的概率,但对于大多数技术而言,相对顺序应该相当稳定。

逻辑回归非常适合类不平衡,因为只要您有> 500个少数类,参数的估计就会足够准确,唯一的影响将是截距,如果这是你可能会纠正的想。逻辑回归建模概率而不仅仅是类,因此您可以进行更多手动调整以满足您的需求。

许多分类技术也有一个类权重参数,可以帮助你更多地关注少数类。它将惩罚一个真正的少数类的错误分类,所以你的整体准确性会受到一点影响,但你会开始看到更多被正确分类的少数类。

不平衡没有正式定义,但 1 到 10 的比率通常足以从使用平衡技术中受益。

有两种类型的不平衡,相对的和绝对的。相对而言,多数阶级和少数阶级之间的比例是不平衡的。绝对你也有少数少数样本。不平衡率越高,您也就越有可能达到绝对不平衡。

请注意,直接子采样不是处理不平衡数据集的最佳方法。那是因为您应该构建一个在原始数据集上表现良好的分类器。有关在不平衡数据集上构建分类器的技术,请参见此处要评估您的分类器,请参见此处

数据不平衡问题??从理论上讲,它只是关于数字。即使差异是 1 个样本,也是数据不平衡

实际上,说这是一个数据不平衡问题是由三件事控制的: 1. 你拥有的样本的数量和分布 2. 同一类内的变化 3. 不同类之间的相似性

最后两点改变了我们看待问题的方式。

为了解释这一点,让我举个例子: A 类 = 100 个样本 B 类 = 10 000

如果 B 类内的变化非常小,那么下采样就足够了,不存在数据不平衡问题

如果 b 类内的变化非常大,那么下采样可能会导致信息丢失,并且应用下采样是危险的

还有一点,有很多样本(主要针对少数类)会缓解数据不平衡问题,更容易处理

例如 10 : 100。1000 : 10 000