在机器学习中,平衡班级比例还是代表总体更好?

机器算法验证 机器学习 不平衡类
2022-03-24 07:23:38

在机器学习的上下文中,假设您有一个问题,即真实群体中的类不平衡——例如,A 类出现 80% 的时间,B 类出现 20% 的时间。

在这种情况下,让给定的 ML 算法依赖于具有相同 80/20 类比率的数据还是具有平衡 (50/50) 比率的数据通常更好?a) 关于训练数据 b) 关于测试数据

一个后续问题:如果 (a) 或 (b) 的答案恰好符合平衡的 50/50 比率,那么即使在人们可以访问的数据恰好是的实际环境中,这种偏好通常是否仍然存在80/20 的比例?换句话说,使用平衡比率来训练和/或测试的好处是否会超过执行该比率的成本(例如,通过丢弃多数类的实例或生成少数类的新合成样本)?

2个回答

查看这篇论文,对使用不平衡数据集进行学习有很好的回顾。

处理该问题的一种方法是在训练集中进行人工二次采样或上采样以平衡数据集。

我认为拥有一个平衡的训练集通常会更好,因为否则决策边界会给较大的班级提供太多空间,而您会对小班级进行过多的错误分类。这通常很糟糕。(想想癌症检测,其中较小的类别成本最高,即患有肿瘤)。

如果您不想使用采样方法,则可以使用基于成本的方法,在这种方法中,您对每个样本的重要性进行加权,以便损失函数对最重要类的样本有更多的贡献。在癌症检测中,您会更重视来自训练阳性类(有肿瘤)样本的成本。

最后,请记住,如果测试集非常不平衡,分类准确度并不是衡量性能的好方法。您最好使用精度/召回率和 f 分数,这些分数很容易从混淆矩阵中计算出来。查看本文以获取有关许多不同场景的分类性能度量的参考。

关于该主题的另一本好书是这个。

如果我错了,请纠正我,但就分类而言,总体中类的实际比例对于 ML 并不重要。重要的是获得跨越整个特征空间的两个类的训练数据。因此,一般而言,如果 A/B 类的比例为 80/20,那么您更有可能找到 A 类相对于 B 类的代表性样本。

因此,关于拥有 50/50 比率是否更好的问题,直觉上我的猜测是,它可能不如使用所有数据拥有更大的训练集重要。但是,这是我不确定的部分……这就是不相等的比率可能如何影响错误分类率,尤其是在分离的边界上。对于测试集,比例不应该是相关的。