如果多数类为负数,是否可以使用所有极度不平衡的数据来训练二元分类器?

数据挖掘 分类 文本 二进制
2022-03-11 14:21:13

我正在训练一个神经网络作为文本分类的二元分类器。数据非常不平衡,其中 TRUE:FALSE 的比率约为 100:10000

直观地说,感觉就像使用所有负样本会阻止分类器学习无效模式(例如,否则可能会使用欠采样来学习)。

我是否低估了不平衡对分类器性能的影响?

4个回答

这种程度的不平衡绝对是一个问题。因为机器学习算法会惩罚模型的复杂性并试图最大化拟合,所以总是预测“错误”的模型通常会优于任何其他模型,因为它可以预测 99% 的数据的正确结果并且超级简单!

在这种情况下应该做的是下采样(http://www.simafore.com/blog/handling-unbalanced-data-machine-learning-models),训练模型,然后将结果预测放大以反映原始数据不平衡。

首先,任何不平衡类文本分类都会偏向于多数人群,并会导致过拟合/欠拟合。您可以使用 Smote、不平衡学习库和 Scikit 学习中的不平衡来优化低人口并获得公平的结果,即使准确度不高。

我希望这有帮助

我目前也在研究不平衡数据集的二元分类问题!这是我发现有用的内容:

  • 使用班级权重。如果你使用 Keras,你可以将它作为参数传递给 model.fit()。是 Keras 的创建者 Francois Chollet 的笔记本,在不平衡数据集上使用它来解决二元分类问题。
  • 在训练期间使用大批量,以便每个批次至少有几个真实数据点。
  • 使用适当的指标。例如,准确度通常不适用于不平衡的数据——例如,如果您试图优化准确度,模型最终会学会每次都将样本分类为 False,因为它最终的准确度为 99 % 这看起来不错,但完全违背了您尝试做的事情的目的。对于不平衡的数据集,精确召回曲线下的区域是一个不错的选择,但我鼓励您阅读并找到最适合您的问题的指标。

希望这会有所帮助,如果您还有任何问题,请告诉我!

我正在研究一个类似的问题,并发现这两篇文章涵盖了您需要了解的有关处理不平衡数据的所有内容。1) https://towardsdatascience.com/practical-tips-for-class-imbalance-in-binary-classification-6ee29bcdb8a7 2) https://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your -机器学习数据集/

希望这可以帮助!