0

I'm try to plot a decision trees of Xgboost models from different datasets.

Which worked fine for most of them, but for one dataset the plot_tree just shows only one leaf.

It's weird for me, once the max_depth of that model is 5.

Could anyone give me a tip?

Thanks for considering my question. :) !

4

1 回答 1

0

我很高兴与大家分享我找到了问题的原因:)

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)

于 2020-10-14T12:54:11.027 回答