我正在开发一个二元分类模型。这个两类数据的自然比例保持在15-85%。在实施随机森林或Xgboost算法后,15%类别的精确度和召回率非常低,而85%类别的则不是。我使用了过采样和欠采样的方法,但这只提高了召回值。处理这种情况的最佳方法是什么?
回答:
欠采样通常不应被优先考虑,因为它会导致大量数据丢失。最终,我们付出了巨大的努力来收集数据,而将它们丢弃基本上是没有意义的。
过采样通常效果更好,但问题在于合成的样本可能会有噪音,并且可能无法完美反映真实世界的状况。因此,它也会造成一些缺陷。
通常,最好是在损失函数中引入类别权重。权重应与该特定类别的样本数量成反比。因此,我建议您使用带有类别权重的自定义损失函数。这在大多数框架中都是集成的。