【问题标题】: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)

【讨论】:

    猜你喜欢
    • 2019-08-12
    • 2018-08-17
    • 1970-01-01
    • 2018-01-06
    • 2018-12-21
    • 2013-01-19
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    相关资源
    最近更新 更多