不平衡的数据

具有偏差百分比的分类数据集称为不平衡大部分数据集包含的类称为大多数类。构成较小的比例为少数类

哪些情况会被视为不平衡?答案可能从轻度到重度不等,如下表所示。

不平衡程度 少数族裔比例
轻度 数据集的 20-40%
数据集的 1-20%
极端 不到 1% 的数据集

为什么要留意不平衡的数据?如果您的数据集任务具有不平衡的数据集,则可能需要应用特定的采样方法。

请看以下用于检测欺诈的模型示例。此数据集每 200 次交易发生一次欺诈实例,因此在真实分布中,大约 0.5% 的数据为正值。

包含两个条形图的条形图表。一个条显示大约 200 个负交易,另一个条显示 1 个正交易。

为什么会出现问题?相对于负例而言,正类别很少,因此机器学习模型会将大部分时间用于负例,且不能从正类别中学习足够多的数据。例如,如果批次大小为 128,则许多批次没有正例,因此渐变信息不全面。

如果您的数据集不平衡,请先尝试对真实分布进行训练。如果模型效果良好且能够泛化,您就大功告成了!如果没有,请尝试以下降采样和加权方法。

降采样和加权

处理不平衡数据的有效方法是对大多数类别进行降采样和加权。我们先定义以下两个新术语:

  • 下采样(在此上下文中)意味着使用大多数类示例的不成比例的比例进行训练。
  • 加权是指将示例权重添加到降采样的类中,等于降采样所依据的因子。

第 1 步:对多数类进行降采样。我们再来看一下欺诈性数据集的示例,其中 1 个正例到 200 个负例。以 10 为因数进行降采样可将余额从 1 个正数提高到 20 个负值 (5%)。虽然产生的训练集仍然适度不平衡,但正类别与负类别的比例远远高于原始极不平衡比例 (0.5%)。

包含两个条形图的条形图表。一个条显示 20 个负交易,另一个条显示 1 个正交易。

第 2 步:对降采样类进行加权:最后一步是向降采样类添加示例权重。由于我们以 10 为因子进行降采样,因此示例权重应为 10。

下采样和加权的概念图。第 1 步:降采样,从代表大多数类别数据集的块中随机选择一个示例。第 2 步(加权)为每个随机选择的示例添加一个权重。

在涉及模型参数(如神经网络中的连接)时,您可能会听到“权重”这个术语。在这里,我们将介绍示例权重,这意味着在训练期间更具体地统计单个样本的数量。示例权重为 10 表示模型将权重视为 10 的一个示例(在计算损失时)的重要性为 10 倍。

权重应该等于您降采样时使用的因子:

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

为什么要降采样和超量?

在降采样后添加示例权重似乎很奇怪。我们尝试改进模型以改进少数类,为什么我们要优先考虑大多数模型?以下是生成的更改:

  • 更快的收敛:在训练期间,我们看到少数类会更频繁,这有助于模型更快地收敛。
  • 磁盘空间:通过将多数类别整合到权重更高的示例中,节省的磁盘空间更少。这种节省为少数类提供了更多磁盘空间,因此我们可以从该类收集更多数量的样本和更广泛的示例。
  • 校准:权重分配可确保我们的模型仍然会校准;输出仍会被视为概率。