gpt4 book ai didi

python - 使用 XGboost 进行不平衡分类时如何使用下采样和配置类权重参数?

转载 作者:行者123 更新时间:2023-12-03 18:48:46 26 4
gpt4 key购买 nike

我正在研究具有极端类不平衡的数据集的二元分类问题。为了帮助模型学习少数类的信号,我对多数类进行了下采样,使得训练集有 20% 的少数类和 80% 的多数类。
现在还有另一个参数 "scale_pos_weight"。我不确定如何在下采样后设置此参数。
我应该根据实际的类比设置它还是应该在下采样后使用类比?

最佳答案

计算损失函数时使用类权重,以防止模型重视主要类。如果一个类主导了数据集,那么模型将倾向于更好地学习该类,因为损失主要取决于模型在该主导类上的表现。
让我们考虑一个极端情况,其中数据集包含 99% 的正样本。如果模型只为每个样本预测 1,那么它的准确率将达到 99%。 类权重背后的想法是您希望每个样本对损失的贡献均等。 因此,您应该根据您的训练集计算此比率,因为损失是在您的训练集上计算的。您的模型不知道您丢弃的样本。
如果您做出正确的预测,则损失为 0,否则为否。对于您的情况,为了确保每个样本对损失的贡献相同,少数类的错误预测应该比多数类的错误预测受到 4 倍的惩罚。因此,模型不能忽略某个类或偏向于多数类。
将类权重设置为与该特定类的样本数量成反比通常是一个好主意。因此,在您的情况下,这将是 4。但是,在实践中,您可能应该尝试几个不同的值来找到最佳权重。
另一个重要方面是这些样本在野外的比例。你说你做了下采样,如果类的比例与你的训练数据集相比在野外不同,那么当你部署你的模型或当你在看不见的样本上测试它时,你可能会观察到更差的分数。这就是为什么理想情况下您还应该使用您的领域知识以实际比率拆分验证和测试集

关于python - 使用 XGboost 进行不平衡分类时如何使用下采样和配置类权重参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67303447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com