不平衡数据集的定义是什么

数据挖掘 多类分类 阶级失衡
2021-10-10 03:09:40

我有数千个数据源从类似类型的硬件生成数据。但是,不同的来源会在数据集中创建不同的动态!

即使特征相同,数据集也具有非常多样化的特征。

我正在研究一个多类分类问题,试图了解可以使用多少特定模型来解决该领域。

不同数据源的类数量不同,因此需要构建不同的模型。这意味着最终我要评估许多不同的模型。类似的输入,但输出时要预测的类数不同。

由于这是一个多类分类问题,因此使用了混淆矩阵和多条 ROC 曲线。

现在我试图更详细地了解可能导致性能最差的模型性能不佳的原因。通常原因是:1.没有足够的测量值 2.严重不平衡的数据集 3. 1 和 2 的组合

问题是我没有关于多类问题的定义,什么是不平衡数据集。理想情况下,如果我可以使用特定的“规则”来标记我的数据集,我将能够看到诸如不平衡集和精度的相关性之类的东西。

当涉及到多个类别的不平衡数据集时,阈值是不够的,因为类别之间可用测量的分布很重要。为此,我不知道如何处理。

你会如何处理这个案子?

非常感谢您阅读本文并为这个社区做出贡献。

问候亚历克斯

2个回答

不平衡数据集的问题是使用先验概率来计算预测标签的生成分类器的问题。由于标签的先验较低,因此它们的概率较低。

有几种方法可以处理不平衡的数据集:

  1. 对少数类进行过采样,随机添加少数类的观察值,因此每个类的先验概率是相同的。
  2. 欠采样 - 如果您有一个包含大量观测值的数据集,但多数类比少数类大几倍,请随机选择整个数据集的一个子集,其中每个标签包含相同数量的观测值。
  3. 使用数据增强生成合成数据,尝试模拟标签中特征的相同分布。
  4. 加权分类器 - 有分类器支持标签的权重。
  5. 如果你使用神经网络模型,你可以做迁移学习。从具有平衡数据的模型中复制模型的权重(您告诉过您有具有相似特征向量的模型),复制网络(带有权重)并将最后一层替换为随机初始化(最好使用 Xavier 初始化器)。然后冻结除最后一个之外的所有层权重并对其进行训练。使用 (1) 或 (2) 的类之间的比例最好保持相同,也建议与 (3) 结合使用。

根据定义,平衡的数据集在所有类中将具有相同数量的数据点。所有其他数据集都被认为是不平衡的。

只要预测准确,您就可以很好地使用不平衡的数据集来训练您的 ML 模型。如果不是,则根据用例进行欠采样或过采样。这个博客涵盖了它。