export_graphviz#

sklearn.tree.export_graphviz(decision_tree, out_file=None, *, max_depth=None, feature_names=None, class_names=None, label='all', filled=False, leaves_parallel=False, impurity=True, node_ids=False, proportion=False, rotate=False, rounded=False, special_characters=False, precision=3, fontname='helvetica')[source]#

以 DOT 格式导出决策树。

此函数生成决策树的 GraphViz 表示,然后将其写入out_file。导出后,可以使用例如以下方式生成图形渲染:

$ dot -Tps tree.dot -o tree.ps      (PostScript format)
$ dot -Tpng tree.dot -o tree.png    (PNG format)

所示的样本计数会根据可能存在的任何 sample_weights 进行加权。

用户指南中了解更多信息。

参数:
decision_tree对象

要导出到 GraphViz 的决策树估计器。

out_file对象或字符串, 默认值=None

输出文件的句柄或名称。如果为 None,结果将作为字符串返回。

在 0.20 版本中更改: out_file 的默认值从“tree.dot”更改为 None。

max_depth整型, 默认值=None

表示的最大深度。如果为 None,则完全生成树。

feature_names形状为 (n_features,) 的类数组对象, 默认值=None

包含特征名称的数组。如果为 None,则使用通用名称(“x[0]”,“x[1]”,…)。

class_names形状为 (n_classes,) 的类数组对象或布尔值, 默认值=None

目标类按升序排列的名称。仅适用于分类,不支持多输出。如果为 True,则显示类名的符号表示。

label{‘all’, ‘root’, ‘none’}, 默认值=’all’

是否显示关于不纯度等的有益标签。选项包括‘all’(在每个节点显示)、‘root’(仅在顶部根节点显示)或‘none’(不在任何节点显示)。

filled布尔值, 默认值=False

当设置为 True 时,为分类任务的多数类别、回归任务的值的极端性或多输出任务的节点纯度填充颜色。

leaves_parallel布尔值, 默认值=False

当设置为 True 时,将所有叶节点绘制在树的底部。

impurity布尔值, 默认值=True

当设置为 True 时,显示每个节点的不纯度。

node_ids布尔值, 默认值=False

当设置为 True 时,在每个节点上显示 ID 号。

proportion布尔值, 默认值=False

当设置为 True 时,将“values”和/或“samples”的显示更改为比例和百分比。

rotate布尔值, 默认值=False

当设置为 True 时,将树的方向从上到下改为从左到右。

rounded布尔值, 默认值=False

当设置为 True 时,绘制带有圆角的节点框。

special_characters布尔值, 默认值=False

当设置为 False 时,为 PostScript 兼容性忽略特殊字符。

precision整型, 默认值=3

每个节点的不纯度、阈值和值属性中浮点数的精度位数。

fontname字符串, 默认值=’helvetica’

用于渲染文本的字体名称。

返回:
dot_data字符串

以 GraphViz dot 格式表示的输入树的字符串。仅当 out_file 为 None 时返回。

在 0.18 版本中新增。

示例

>>> from sklearn.datasets import load_iris
>>> from sklearn import tree
>>> clf = tree.DecisionTreeClassifier()
>>> iris = load_iris()
>>> clf = clf.fit(iris.data, iris.target)
>>> tree.export_graphviz(clf)
'digraph Tree {...