数据集:不平衡的数据集

假设某个数据集包含分类标签,该标签的值是 肯定否定。在均衡的数据集中,正数标签大致相等。不过,如果一个标签更常见 与另一个标签相比,则数据集 不平衡。 不平衡的数据集内的主要标签称为 大多数类别; 不太常见的标签称为 少数类

下表提供了我们广泛接受的名称和范围, 不同程度的不平衡:

属于少数群体的数据所占的百分比 不平衡程度
占数据集 20-40% 的百分比 温和
数据集的 1-20%
不到数据集的 1% 极端

例如,假设有一个病毒检测数据集,其中少数类 代表数据集的 0.5%,多数类别代表 99.5%。 这种极不均衡的数据集在医学领域很常见, 绝大多数实验对象都不会感染病毒

图 5. 包含两个条形的条形图。一个条形显示大约 200 个
            负类别;另一条显示了 1 个正类别。
图 5. 数据集极不均衡。

 

不均衡数据集有时不包含足够的少数类 来正确训练模型。 也就是说,由于正例标签太少,模型几乎完全基于 无法充分了解正向标签。例如: 如果批次大小为 50,则许多批次都不包含正值标签。

通常,特别是对于轻度不平衡和有些中度不平衡的情况 数据集,不平衡也就不是问题。因此,您应先尝试 使用原始数据集进行训练。如果模型表现良好,就说明完成了。 否则,至少该次优模型能够提供良好的 未来实验的基准。 之后,您可以尝试以下方法来解决问题 由数据集不均衡所导致。

降采样和上调权重

处理不均衡的数据集的一种方法是下采样并上调 多数类。这两个新术语的定义如下:

  • 降采样(在此上下文中) 指的是基于多数类别中一个不成比例的小子集进行训练 示例。
  • 上调权重表示增加 样本权重与降采样类别的权重相等, 降采样。

第 1 步:对多数类进行降采样。想想看, 病毒数据集的一个比率为每 200 个负例有 1 个正例标签 标签。下采样:以下因数: 20 可将余额减少到 1 个正数到 10 个负数 (10%)。虽然 产生的训练集仍然比较不平衡, 从正类别变为负类别要好于原始类别的“极不平衡” 比例 (0.5%)。

图 6. 包含两个条形的条形图。一个条形显示 20 次差评
            类;另一条显示了 1 个正类别。
图 6. 降采样。

 

第 2 步:上采样类(上采样):添加示例 传递给下采样类别。降采样为因数 20 后, 应该为 20。(虽然这似乎不合常理,但 稍后解释原因。)

图 7. 降采样和上调权重的两步图。
            第 1 步:降采样从多数样本中提取随机样本
            类。第 2 步:上调权重会为降采样增加权重
            示例。
图 7. 上调权重。

 

术语权重 并非指模型参数(如 w1 或 w2)。这里的“权重”是指 样本权重,从而提高单个样本的重要性 。样本权重为 10 表示模型将该样本视为 其重要性是示例模型的 10 倍(在计算损失时) 权重 1。

weight 应等于您用于降采样的因数:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

在降采样后添加样本权重似乎很奇怪。毕竟, 所以我们要尽量让模型在少数类的基础上进行改进, 多数类?事实上,提高大多数类别的权重往往能 预测偏差。也就是说, 在下采样后增加权重往往会减少平均值与 模型预测结果和数据集标签的平均值。

再平衡比率

为了重新平衡数据集,您应该下采样和上调多大幅度? 要确定答案,您应该对再平衡比率进行实验, 就像您对其他来源进行实验一样 超参数。 尽管如此,答案最终取决于以下因素:

  • 批次大小
  • 失衡比率
  • 训练集中的样本数量

理想情况下,每个批次都应包含多个少数类样本。 没有足够少数类的批次的训练将非常糟糕。 批次大小应是不平衡比率的数倍。 例如,如果不平衡比率为 100:1,则批次大小应 至少为 500。

练习:检查您的理解情况

请考虑以下情况:

  • 批次大小为 128。
  • 不平衡比率为 100:1。
  • 训练集包含 10 亿个样本。
下列哪些表述是正确的?
将批次大小增加到 1024 将改善生成的 模型。
如果批次大小为 1,024,则每个批次的平均大小约为 10 少数类样本,这对于训练应该足够了。 如果不进行降采样,训练集仍会包含一个 数十亿个样本。
下采样(和上调权重)至 20:1,同时保持批次大小 将改进生成的模型。
每个批次将计算大约 9 个少数类别样本的平均值, 足以进行训练。降采样可有效地降低 训练集中的样本数量从 10 亿到 4,000 万。
目前情况没问题。
大多数批次包含的少数类并不足以训练出有用的 模型。