4.4 绘图API

  1. lightgbm.plot_importance(): 绘制特征的重要性。

    1. lightgbm.plot_importance(booster, ax=None, height=0.2, xlim=None, ylim=None,
    2. title='Feature importance', xlabel='Feature importance', ylabel='Features',
    3. importance_type='split', max_num_features=None, ignore_zero=True,
    4. figsize=None, grid=True, **kwargs)

    参数:

    • booster: 一个Booster 或者LGBMModel 对象。即将绘制的就是该对象的特征的重要性

    • ax:一个matplotlib.axes.Axes 实例或者None。 它制定了绘制图形的Axes

      如果为None,则创建一个新的figure以及axes。 默认为None

    • height: 一个浮点数,给出了bar 的高度(将被传递给ax.barh() 方法) 。默认为0.2

    • xlim: 一个二元元组或者None, 给出了x 轴的范围(将被传递给ax.xlim() 方法)。 默认为None

    • ylim: 一个二元元组或者None, 给出了y 轴的范围(将被传递给ax.ylim() 方法)。 默认为None

    • title: 一个字符串或者None,给出了Axes 的标题。默认为Feature importance

      如果为None,则没有标题。

    • xlabel: 一个字符串或者None,给出了X轴的标题。默认为Feature importance

      如果为None,则没有标题。

    • ylabel: 一个字符串或者None,给出了Y 的标题。默认为Features

      如果为None,则没有标题。

    • importance_type: 一个字符串,给出了如何计算出重要性的。默认为'split'。 参考lightgbm.Booster.feature_importance() 方法

    • max_num_features: 一个整数或者None, 给出了最多展示多少个特征的重要性。默认为None

      如果为None 或者小于1 的整数,则展示所有的。

    • ignore_zero: 一个布尔值,指定是否忽略为0 的特征。默认为True

    • figsize: 一个二元的元组或者None,指定了图像的尺寸。默认为None

    • grid:一个布尔值,指示是否添加网格。默认为True

    • kwargs: 其它的关键字参数。它将被传递给ax.barh() 方法。

    返回值:一个matplotlib.axes.Axes 对象,它就是传入的ax 本身。

  2. lightgbm.plot_metric(): 在训练过程中绘制一个metric

    1. lightgbm.plot_metric(booster, metric=None, dataset_names=None, ax=None,
    2. xlim=None, ylim=None, title='Metric during training',
    3. xlabel='Iterations', ylabel='auto', figsize=None, grid=True)

    参数:

    • booster:一个字典或者一个LGBMModel 实例。

      • 如果是一个字典,则它是由lightgbm.train() 返回的字典
    • metric:一个字符串或者None,指定了要绘制的metric 的名字。如果为None, 则从字典中取出第一个metric(根据hashcode的顺序)。默认为None

      只支持绘制一个metric,因为不同的metric 无法绘制在一张图上(不同的metric 有不同的量级)。

    • dataset_names: 一个字符串列表,或者None。 它给出了用于计算metric 的样本集的名字。如果为None,则使用所有的样本集。默认为None

    • title: 一个字符串或者None,给出了Axes 的标题。默认为Metric during training

      如果为None,则没有标题。

    • xlabel: 一个字符串或者None,给出了X轴的标题。默认为Iterations

      如果为None,则没有标题。

    • ylabel: 一个字符串或者None,给出了Y 的标题。默认为auto

      • 如果为None,则没有标题。
      • 如果为'auto',则使用metric 的名字。
    • 其它参数:参考lightgbm.plot_importance()

    返回值:一个matplotlib.axes.Axes 对象,它就是传入的ax 本身。

  3. lightgbm.plot_tree():绘制指定的树模型。

    1. lightgbm.plot_tree(booster, ax=None, tree_index=0, figsize=None,
    2. graph_attr=None, node_attr=None, edge_attr=None, show_info=None)

    参数:

    • booster: 一个Booster 或者LGBMModel 对象。即将绘制的就是该对象的树模型。
    • tree_index: 一个整数,指定要绘制哪棵树。默认为0
    • graph_attr: 一个字典或者None, 给出了graphviz graph 的属性。默认为None
    • node_attr: 一个字典或者None, 给出了graphviz node 的属性。默认为None
    • edge_attr: 一个字典或者None, 给出了graphviz edge 的属性。默认为None
    • show_info: 一个列表或者None, 给出了将要在graph node 中显示哪些信息。可以为:'split_gain', 'internal_value', internal_count', leaf_count' 。默认为None
    • 其它参数: 参考lightgbm.plot_importance()

    返回值:一个matplotlib.axes.Axes 对象,它就是传入的ax 本身。

  4. lightgbm.create_tree_digraph(): 绘制指定的树模型,但是返回一个digraph,而不是直接绘制。

    1. lightgbm.create_tree_digraph(booster, tree_index=0, show_info=None, name=None,
    2. comment=None, filename=None, directory=None, format=None, engine=None,
    3. encoding=None, graph_attr=None, node_attr=None, edge_attr=None,
    4. body=None, strict=False)

    参数:

    • booster: 一个Booster 或者LGBMModel 对象。即将绘制的就是该对象的树模型。
    • name: 一个字符串或者None。 给出了graphviz源文件的名字 。 默认为None
    • comment: 一个字符串或者None。 给出了添加到 graphviz 源文件第一行的评论 。 默认为None
    • filename:一个字符串或者None。 给出了保存graphviz 源文件的名字。如果为None,则是name+'.gv' 。默认为None
    • directory: 一个字符串或者None,给出了保存和渲染graphviz 文件的目录。默认为None
    • format: 一个字符串或者None, 表示输出图片的格式。可以为'png','pdf',...。默认为None
    • engine: 一个字符串或者None, 制定了graphviz 的排版引擎。可以为'dot','neato',...。 。默认为None
    • encoding: 一个字符串或者None, 指定了graphviz 源文件的编码。默认为None
    • body: 一个字符列表或者None, 给出了添加到grapviz graph body 中的线条。默认为None
    • strict: 一个布尔值,指示是否应该合并multi-edges 。默认为False
    • 其它参数: 参考lightgbm.plot_tree()

    返回值:一个graphviz.Digraph 对象,代表指定的树模型的digraph