lightgbm.plot_tree

lightgbm.plot_tree(booster, ax=None, tree_index=0, figsize=None, dpi=None, show_info=None, precision=3, orientation='horizontal', example_case=None, **kwargs)[source]

绘制指定的树。

图中每个节点代表树中的一个节点。

非叶节点具有类似 Column_10 <= 875.9 的标签,这意味着“此节点在名为“Column_10”的特征上进行分割,阈值为 875.9”。

叶节点具有类似 leaf 2: 0.422 的标签,这意味着“此节点是叶节点,落入此节点的记录的预测值为 0.422”。数字 (2) 是内部唯一标识符,没有特殊含义。

注意

由于 create_tree_digraph() 的无损质量以及返回的对象可以直接在 Jupyter notebook 中渲染和显示,因此优先使用它。

参数:
  • booster (BoosterLGBMModel) – 要绘制的 Booster 或 LGBMModel 实例。

  • ax (matplotlib.axes.AxesNone, 可选 (默认值=None)) – 目标坐标轴实例。如果为 None,将创建新的图形和坐标轴。

  • tree_index (int, 可选 (默认值=0)) – 要绘制的目标树的索引。

  • figsize (由 2 个元素组成的 tupleNone, 可选 (默认值=None)) – 图形大小。

  • dpi (intNone, 可选 (默认值=None)) – 图形分辨率。

  • show_info (str 类型的 list, 或 None, 可选 (默认值=None)) –

    应在节点中显示哪些信息。

    • 'split_gain' : 添加此分割对模型带来的增益

    • 'internal_value' : 如果此节点是叶节点,则此节点将产生的原始预测值

    • 'internal_count' : 落入此非叶节点的训练数据记录数

    • 'internal_weight' : 落入此非叶节点的所有节点的总权重

    • 'leaf_count' : 落入此叶节点的训练数据记录数

    • 'leaf_weight' : 落入此叶节点的所有观测值的总权重(Hessian 求和)

    • 'data_percentage' : 落入此节点的训练数据百分比

  • precision (intNone, 可选 (默认值=3)) – 用于将浮点值的显示限制为特定精度。

  • orientation (str, 可选 (默认值='horizontal')) – 树的方向。可以是‘horizontal’(水平)或‘vertical’(垂直)。

  • example_case (numpy 2-D array, pandas DataFrameNone, 可选 (默认值=None)) –

    与训练数据结构相同的单行数据。如果不为 None,则图表将突出显示该样本通过树的路径。

    在 4.0.0 版本中添加。

  • **kwargs – 传递给 Digraph 构造函数的其他参数。请访问 https://graphviz.readthedocs.io/en/stable/api.html#digraph 查看支持参数的完整列表。

返回值:

ax – 包含单棵树的图表。

返回类型:

matplotlib.axes.Axes