Machine learning 如何处理自然不平衡数据集

Machine learning 如何处理自然不平衡数据集,machine-learning,data-science,Machine Learning,Data Science,我正在研究一个二元分类模型。这两个阶层的人口自然保持15-85%的比例。在实现了随机森林或Xgboost算法后,15%类的准确率和召回率非常低,但85%类的准确率和召回率不高。我使用过采样和欠采样方法。但这只会增加回忆值。处理这种情况的最佳方法是什么?不应首选欠采样,因为它会导致大量数据丢失。最后,我们花了这么多的精力来收集数据,而当我们扔掉这些数据时,这基本上是没有意义的 过采样通常效果更好,但问题是合成的样本可能有噪声,可能无法完美反映真实世界的情况。因此,它也造成了一些不足 通常,最好在损

我正在研究一个二元分类模型。这两个阶层的人口自然保持15-85%的比例。在实现了随机森林或Xgboost算法后,15%类的准确率和召回率非常低,但85%类的准确率和召回率不高。我使用过采样和欠采样方法。但这只会增加回忆值。处理这种情况的最佳方法是什么?

不应首选欠采样,因为它会导致大量数据丢失。最后,我们花了这么多的精力来收集数据,而当我们扔掉这些数据时,这基本上是没有意义的

过采样通常效果更好,但问题是合成的样本可能有噪声,可能无法完美反映真实世界的情况。因此,它也造成了一些不足

通常,最好在损失函数中引入类权重。权重应该与特定类别的样本数成反比。因此,我建议您使用自定义的损失函数和类权重。它集成在大多数框架中