比较 SMOTE 与不平衡二元分类中的多数类下采样

数据挖掘 分类 交叉验证 模型选择 阶级失衡
2022-03-08 09:20:38

我有一个二元分类任务,两个类之间不平衡。我想将 SMOTE 与缩小多数班级的规模与少数班级的规模进行比较。

我使用两种方法对分类器进行了 3 倍验证:

  • SMOTE 将少数类的大小增加到多数类的大小
  • 使用随机子抽样将多数类缩小为少数类

为了测试哪种方法效果更好,我用 3 倍交叉验证训练了我的分类器(随机森林)。

我从 3-fold CV 得到的混淆矩阵似乎促进了 SMOTE 的使用(这两个类的分类性能更好)。我假设这个简历可以用来选择最好的方法。

然而,当我在一个真实的测试集上测试分类器(它被排除在外,不用于训练或验证)时,我没有看到 SMOTE 算法对多数类的随机子样本有真正的优越性。少数类被更好地分类,但以牺牲多数类的性能为代价。

这是 SMOTE 算法的限制还是我的模型选择方法(使用 3 倍 CV)有一些缺陷?

1个回答

没有实际数据很难说。

但是,我可以告诉您,SMOTE 会创建人工实例,因此,当大量使用时,可能会“偏离”实际的少数类数据。很难确定范围。许多因素都会发生,首先是数据,然后是相邻系数。

PS 您可以尝试在 Samples 下使用许多随机数进行提升。因此,您可以先尝试 Adaboost 而不是随机森林,例如每个分类器都在不同的子样本上进行训练。