如何处理文本数据中如此大的类不平衡?

数据挖掘 机器学习 Python 阶级失衡 文本分类
2022-03-05 05:40:55

我正在研究一个多类文本分类器。类的总数为 265,总行数为 20,000。出现次数最多的类有 6000 个样本,并且有很多类也只有 1 个样本。对数据的初步分析使我将 10 个样本的截止值作为要识别的类别,并且我制作了一个单独的杂项类别,该类别少于 10 个样本。现在我减少到27个班。从图中可以看出,仍然存在类不平衡,样本数最多的类有 6000 左右,最低的有 10 个。

我该如何处理如此大的班级不平衡?他们的算法是否更适合处理如此大的类不平衡?

上课频率](htt[![在此处输入图片描述] 1 ps://imgur.com/a/8hJw9MJ)

1个回答

在大多数情况下,随着您向多类分类问题添加更多类,构建模型变得更加困难。所有算法都可能遇到麻烦,因为每个类的学习示例较少。如果 27 类目标功能不适合您,您可以进一步减少类的数量。去做这个:

  1. 通过将小班分组到“其他”类别中,继续您已经完成的工作。也许具有 2 或 3 个类的模型对您有用。
  2. 尝试半监督学习方法。尝试对您的不同类别进行聚类,并将相似的类别分组到同一个集群中。您的模型现在将预测集群 A、集群 B 等。