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

时间:2017-06-20 08:46:45

标签: xgboost

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

2 个答案:

答案 0 :(得分:1)

我从未在文档中看到明确说明此参数的作用。但是,我非常确信它是后者,即它根据负样本的1/9构建树。虽然如果数据都很好,两者都应该具有大致相同的效果,但是采用负数的子集是建模的惯例,因为它允许更容易的交叉验证,因为您现在有9个训练集可以相互检查。 / p>

作为旁注,我不一定会认为90/10的分裂是如此不平衡。这比你在很多情况下要好得多,并且在重新平衡总是有用的方面有一些debate

答案 1 :(得分:1)

xgboost中的

scale_pos_weight仅用于将权重乘以is source code。不会根据该参数进行二次采样。