xgboost: base_score参数的含义

21
在xgboost的文档中,我读到了以下内容:
“base_score [默认值=0.5]:所有实例的初始预测分数,全局偏差。”
这句话是什么意思?基础分数是否是数据集中感兴趣事件的先验概率?例如,在一个由1,000个观察值组成、其中300个为正类和700个为负类的数据集中,基础分数将是0.3吗?
如果不是,那会是什么呢?
期待您的回答。

1
这只是针对两类/二元的解释。在多类中没有任何意义。 - smci
1个回答

16

我认为你的理解是正确的,在你的例子中,基础分数可以设置为0.3,或者你可以简单地将其保留为默认值0.5。对于高度不平衡的数据,你可以将其初始化为更有意义的基础分数,以获得改进的学习过程。理论上,只要选择正确的学习率并给予足够的训练步骤,起始基础分数不应影响结果。请参考作者在此问题中的回答。

参考资料:https://github.com/dmlc/xgboost/issues/799


2
你的回答只适用于两类(二进制)情况,在多类情况下这是没有意义的。请参见他们在等效的多类别#1380中的base_margin默认值上链接到的讨论,其中xgboost(2017年之前)通常假定base_score = 1 / nclasses,如果存在类别不平衡,则先验概率非常可疑,但他们说“如果您使用足够的训练步骤,这将消失”,这对于数据探索等开箱即用性能来说并不好。无论如何,他们在2017年修复了这个问题。 - smci

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接