首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XGBoost剪枝步骤在做什么?

XGBoost剪枝步骤在做什么?
EN

Stack Overflow用户
提问于 2018-10-05 19:24:41
回答 1查看 5.5K关注 0票数 6

当我使用XGBoost来拟合一个模型时,它通常会显示一个消息列表,如"updater_prune.cc:74:树剪枝结束,1个根,6个额外节点,0剪枝节点,max_depth=5“。我想知道XGBoost是如何进行树修剪的?我找不到关于他们剪枝过程在他们的论文里的描述。

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

EN

回答 1

Stack Overflow用户

发布于 2018-10-05 20:45:47

XGBoost 把所有的树都种在 max_depth .上。

这允许快速训练,因为您不必评估每个节点的所有正则化参数。

每棵树增长到max_depth之后,您从树的底部走(递归地一直走到树的顶部),并根据所选的超参数确定拆分和子树是否是有效的。如果拆分或节点无效,则从树中删除它们。

model dumpXGBoost模型中,如果发生剪枝,您可以观察到在训练期间实际深度将小于max_depth

剪枝不需要验证数据。它只是提出一个简单的问题,即在培训期间,基于的,拆分节点或由此产生的子节点是否是你设置的超参数有效的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52672116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档