【发布时间】:2020-06-25 07:44:15
【问题描述】:
我有一个包含 1500 条记录的数据集,其中有两个不平衡的类。 0 类是 1300 条记录,而 1 类是 200 条记录,因此比率为 6.5:1。
我用这个数据集构建了一个随机森林进行分类。我从过去的经验中知道,如果我使用整个数据集,召回率非常低,这可能是由于类别不平衡造成的。
所以我决定对 Class 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)
3) 性能仍然不是很好。精度为 0.34,召回率为 0.72,f1 分数为 0.46。有什么方法可以改善吗?我应该使用简历吗?
非常感谢您的帮助!
【问题讨论】:
标签: python tensorflow machine-learning data-science imbalanced-data