过采样不平衡数据的测试分类

机器算法验证 分类 数据集 重采样 不平衡类 过采样
2022-02-10 07:11:29

我正在处理严重不平衡的数据。在文献中,有几种方法用于使用重新采样(过采样或欠采样)来重新平衡数据。两个好的方法是:

  • SMOTE:合成少数过采样技术(SMOTE

  • ADASYN:不平衡学习的自适应综合采样方法 ( ADASYN )

我已经实现了 ADASYN,因为它具有自适应特性并且易于扩展到多类问题。

我的问题是如何测试 ADASYN(或任何其他过采样方法)产生的过采样数据。上述两篇论文尚不清楚他们是如何进行实验的。有两种情况:

1- 对整个数据集进行过采样,然后将其拆分为训练集和测试集(或交叉验证)。

2-拆分原始数据集后,仅对训练集进行过采样,并在原始数据测试集上进行测试(可以进行交叉验证)。

在第一种情况下,结果比没有过采样要好得多,但我担心是否存在过拟合。而在第二种情况下,结果比没有过采样的情况稍好,但比第一种情况差得多。但是第二种情况的问题是,如果所有少数类样本都进入测试集,那么过采样不会带来任何好处。

我不确定是否有任何其他设置来测试这些数据。

2个回答

几点评论:

选项(1)是一个非常糟糕的主意。同一点的副本可能会同时出现在训练和测试集中。这允许分类器作弊,因为当试图对测试集进行预测时,分类器已经在训练集中看到了相同的点。拥有测试集和训练集的全部意义在于测试集应该独立于训练集。

选项(2)是诚实的。如果您没有足够的数据,您可以尝试使用折交叉验证。例如,您可以将数据分成 10 份。然后,对于每个单独的折叠,使用该折叠作为测试集,其余 9 个折叠作为训练集。然后,您可以平均 10 次运行的训练准确度。这种方法的要点是,由于只有 1/10 的数据在测试集中,所有少数类样本不太可能最终都在测试集中。k

第二(2)个选项是正确的做法。您使用过采样技术创建的合成样本不是真实示例,而是合成样本。这些对于测试目的无效,但它们仍然可以用于训练。它们旨在在不修改算法的情况下修改分类器的行为。