我有一个包含 88 个正样本和 128575 个负样本的不平衡数据集。我不愿意对数据进行过度/欠采样,因为它是一个生物数据集,我不想引入合成数据。我用这个原始数据集构建了一个随机森林分类器。我的正面课程的 F1 分数为 0。零精度。零召回。我交叉检查了预测和测试数据。该模型预测了一些积极因素,但实际上都不是积极因素。最差的表现。
所以,我试图对正类进行过采样。我将阳性样本上采样到 1000 个样本。令我惊讶的是,这个数据集的 F1 分数是 0.97,对于正类。然后我尝试了较少的样本。我用 200 个正样本获得了 0.83 的 F1 分数,这只是原始正样本的 2.25 倍。
我想知道为什么会这样。对于 88 个样本,F1 得分为 0.00(四舍五入为两位数)。对于 200 个样本,它是 0.83。没有数据泄露。所有功能都经过精心设计。我使用imbalanced-learn模块进行过采样。有人可以解释为什么会出现这种性能差异吗?