XGBoost修剪步骤在做什么?

时间:2018-10-05 19:24:42

标签: decision-tree xgboost pruning

当我使用XGBoost拟合模型时,它通常显示消息列表,例如“ updater_prune.cc:74:树修剪结束,1个根,6个额外节点,0个修剪节点,max_depth = 5”。我想知道XGBoost如何执行树修剪吗?我找不到有关其修剪过程in their paper的描述。

注意:我确实了解决策树修剪过程,例如修剪前和修剪后。在这里,我对XGBoost的实际修剪过程感到好奇。通常,修剪需要验证数据,但是即使我没有提供任何验证数据,XGBoost也会执行修剪。

1 个答案:

答案 0 :(得分:2)

XGBoost首先将所有树木生长到max_depth

由于您不必评估每个节点上的所有正则化参数,因此可以进行快速培训。

每棵树长到max_depth后,您从树的底部步行(递归一直到顶部),并确定是否根据您选择的超参数,分割和子项有效。如果拆分或节点无效,则将其从树中删除。

model dump模型的XGBoost中,您可以观察到如果进行修剪,则在训练期间,实际深度将小于max_depth

修剪不需要验证数据。只是问一个简单的问题,基于{{3} }。