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)[源代码]

绘制指定的树。

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

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

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

备注

使用 create_tree_digraph() 是更可取的,因为它具有无损质量,并且返回的对象也可以直接在 Jupyter 笔记本中渲染和显示。

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

  • ax (matplotlib.axes.Axes or None, optional (default=None)) – 目标轴实例。如果为 None,将创建新的图形和轴。

  • tree_index (int, optional (default=0)) – 要绘制的目标树的索引。

  • figsize (tuple of 2 elements or None, optional (default=None)) – 图表尺寸。

  • dpi (int or None, optional (default=None)) – 图像的分辨率。

  • show_info (list of str, or None, optional (default=None)) –

    节点中应显示哪些信息。

    • 'split_gain' : 将此分割添加到模型中获得的增益

    • 'internal_value' : 如果该节点是叶节点,则生成的原始预测值

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

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

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

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

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

  • precision (int or None, optional (default=3)) – 用于将浮点数值的显示限制在一定的精度范围内。

  • orientation (str, optional (default='horizontal')) – 树的方向。可以是 ‘horizontal’ 或 ‘vertical’。

  • example_case (numpy 2-D array, pandas DataFrame or None, optional (default=None)) – 具有与训练数据相同结构的单行。如果不是 None,图表将突出显示该样本在树中的路径。 .. versionadded:: 4.0.0

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

返回:

ax – 单棵树的绘图。

返回类型:

matplotlib.axes.Axes