导出图#
- 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 {...