【问题标题】:Xgboost - Decision Tree - Only one leafXgboost - 决策树 - 只有一片叶子
【发布时间】:2021-01-02 16:39:21
【问题描述】:
我正在尝试绘制来自不同数据集的 Xgboost 模型的决策树。
这对大多数人来说都很好,但对于一个数据集,plot_tree 只显示一个叶子。
这对我来说很奇怪,一旦该模型的 max_depth 为 5。
谁能给我小费?
感谢您考虑我的问题。 :) ! ????
【问题讨论】:
标签:
python
decision-tree
xgboost
xgbclassifier
【解决方案1】:
我很高兴与大家分享我找到了问题的原因 :)
XGBoost 是一种基于 ensemble 原理的技术,因此 XGBClassifier 会创建多棵树,而有些树只能以一个叶子结尾。我意识到用于绘制 export_graphviz 或 plot_tree 的函数将模型的第一棵树绘制为默认值,而不是最佳交互。为此,我必须设置参数“num_trees”:
"num_trees (int, default 0) – 指定目标的序数
树”
所以,我必须找到目标树的序数。
幸运的是,有两个函数为我们设置了 .get_booster() 和 .best_iteration。
请参阅下面的代码以绘制具有最佳交互的树。
plot_tree (model, ax = ax, num_trees = model.get_booster().best_iteration)