如何解决Xgboost-决策树-仅一片叶子
我尝试绘制来自不同数据集的Xgboost模型的决策树。
哪种方法对大多数方法都适用,但是对于一个数据集,plot_tree仅显示一片叶子。
一旦该模型的max_depth为5,这对我来说很奇怪。
有人可以给我小费吗?
感谢您考虑我的问题。 :)! ?
解决方法
很高兴与您分享我找出问题原因的原因:)
XGBoost是一项基于集合原理的技术,因此XGBClassifier创建了多棵树,有些树只能在一个叶子中结束。我意识到用于绘制export_graphviz或plot_tree的函数将模型的第一棵树绘制为默认树,而不是最佳交互。为此,我必须设置参数“ num_trees”:
“ num_trees(整数,默认为0)–指定目标的序号 树”
因此,我必须找到目标树的序号。 幸运的是,有两个函数为我们设置了.get_booster()和.best_iteration。
请参见下面的代码以绘制具有最佳交互作用的树。
plot_tree (model,ax = ax,num_trees = model.get_booster().best_iteration)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。