如何指定决策树的graphviz表示的大小?

我有GraphViz在虹膜数据集上训练的决策树的表示。

import graphviz

dot_data = tree.export_graphviz(clf, out_file=None,

feature_names=iris.feature_names,

class_names=iris.target_names,

filled=True, rounded=True,

special_characters=True)

graph = graphviz.Source(dot_data)

graph

我正在使用上面的代码来生成GraphViz图,但是它创建了一个大图。

我想手动控制figzise此图。我怎样才能做到这一点?

回答:

在最初编写自己的函数以修改DOT源代码字符串以添加size属性后,我偶然发现了pydotplus.graphviz.Graph文档中的这一部分:

应该支持以Graphviz点语言定义的所有属性。

可以通过动态生成的方法设置属性:

 set_[attribute name], i.e. set_size, set_fontname

您可以在下面看到使用此示例。请注意调用函数时的语法,因为DOT源代码需要在宽度和高度两边加上双引号。感叹号表示它将强制调整图像大小,直到其中一个尺寸与指定的尺寸之一匹配为止,这仅在指定的尺寸大于图形的原始尺寸时才有意义。

import pydotplus

from sklearn.datasets import load_breast_cancer

from sklearn.tree import DecisionTreeClassifier, export_graphviz

# Load in the dataset from sklearn

dataset = load_breast_cancer()

X = dataset.data

y = dataset.target

col_names = dataset.feature_names

# Create and fit the decision tree

clf_dt = DecisionTreeClassifier(criterion = 'gini', max_depth = 3)

clf_dt.fit(X_train, y_train)

# Export resulting tree to DOT source code string

dot_data = export_graphviz(clf_dt,

feature_names=col_names,

out_file=None,

filled=True,

rounded=True)

pydot_graph = pydotplus.graph_from_dot_data(dot_data)

pydot_graph.write_png('original_tree.png')

pydot_graph.set_size('"5,5!"')

pydot_graph.write_png('resized_tree.png')

单击图片以了解尺寸,因为它似乎无法在浏览器中正确显示。

原始树

调整大小的树

还请注意,pydotplus.graphviz.Graph对象具有to_string()返回树的DOT源代码字符串的方法,该方法也可以与graphviz.Source问题中的对象一起使用:

import graphviz

gvz_graph = graphviz.Source(pydot_graph.to_string())

gvz_graph

以上是 如何指定决策树的graphviz表示的大小? 的全部内容, 来源链接: utcz.com/qa/408155.html

回到顶部