对于不平衡的分类,验证数据集是否应该平衡?

数据挖掘 分类 阶级失衡 不平衡学习
2021-09-26 01:31:11

我正在为不平衡的数据(例如,90% 的 Pos 类与 10% 的 Neg 类)建立一个二元分类模型。

我已经平衡了我的训练数据集以反映 50/50 的分类,而我的保留(训练数据集)保持与原始数据分布相似(即 90% 对 10%)。我的问题是关于 CV 超参数过程中使用的验证数据。在每次迭代折叠应:

1)训练和测试的折叠都是平衡的

或者

2)训练折叠应该保持平衡,而验证折叠应该不平衡,以反映原始数据分布和保留数据集。

我目前正在使用第一个选项来调整我的模型;但是,鉴于保留数据集和验证数据集具有不同的分布,这种方法是否有效?

2个回答

测试和验证数据集应该具有相同的分布。在这种情况下,验证数据集上的性能指标很好地近似测试数据集上的性能指标。但是,训练数据集可以不同。此外,平衡训练数据集很好,有时也很有帮助。另一方面,平衡测试数据集可能会导致模型性能的偏差估计,因为测试数据集应该反映原始数据的不平衡。正如我在开头提到的,测试和验证数据集应该具有相同的分布。由于不允许平衡测试数据集,因此也无法验证验证数据集。

此外,我应该提到,当你平衡测试数据集时,与使用不平衡数据集进行测试相比,你将获得更好的性能。当然,如上所述,使用平衡测试集没有意义。因此,除非您使用与实际数据具有相同类分布的不平衡数据集,否则结果性能是不可靠的。

在我看来,验证集应该遵循原始的不平衡分布:目标最终是将模型应用于真实分布,因此应该选择超参数以最大化该分布的性能。

但由于我不完全确定我会建议尝试这两种选择,并采用在测试集上提供最佳性能的一种。