在xgboost中使用param'cale_pos_weight'的机制是什么?

yan*_*hen 8 xgboost

我的数据集有90%的阴性样本和10%的阳性样本非常不平衡.我尝试使用scale_pos_weight的参数并将其设置为9.这个参数的机制是什么.我很好奇它实际意味着什么:它是否意味着重复9次阳性样本?或者每次抽出1/9样本的阴性样本并多次训练模型.此外,如果我的数据集的负样本只比正数样本多一点,我是否需要再次指定参数?

dat*_*ess 0

我从未在文档中看到任何地方明确说明此参数的作用。不过,我非常有信心是后者,即它基于 1/9 的负样本来构建树。尽管如果数据良好,两者应该具有大致相同的效果,但采用负数的子集是建模的惯例,因为它允许更轻松的交叉验证,因为您现在有 9 个训练集,可以相互检查。

顺便说一句,我不一定认为 90/10 的分配如此不平衡。这比在许多情况下得到的要好得多,并且对于重新平衡是否总是有帮助存在一些争论。