导出图#

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 {...