我有一个包含 1500 条记录的数据集,其中有两个不平衡的类。0 类是 1300 条记录,而 1 类是 200 条记录,因此比率为 6.5:1。
我用这个数据集构建了一个随机森林进行分类。我从过去的经验中知道,如果我使用整个数据集,召回率非常低,这可能是由于类别不平衡造成的。
所以我决定对0类进行欠采样。我的步骤如下:
将数据集随机分成比例为 7:3 的训练和测试集(因此 1050 用于训练,450 用于测试。)
现在,训练集有约 900 个 0 类数据 ~100 类 1 类数据。我对 0 类约 900 个数据进行聚类,并将其(按比例)欠采样到约 100 条记录。
所以现在训练集 ~100 Class 0 + ~100 Class 1 = ~200 条记录,而测试集是 70 Class 0 + 380 Class 1 = 450 条记录。
我的问题来了:
1) 我的步骤有效吗?我首先拆分训练/测试,然后对训练集的多数类进行欠采样。
2)现在我的训练集(~200)<测试集(450)。是否有意义?
3) 性能仍然不是很好。精度为 0.34,召回率为 0.72,f1 得分为 0.46。有什么方法可以改善吗?我应该使用简历吗?
非常感谢您的帮助!