Мне нужно экспортировать в высоком разрешении визуализацию деревьев решений.Graphviz отлично работает для создания изображений, и я использовал PyDotPlus для настройки цветов, но я не мог найти способ экспортировать их в высоком разрешении (по крайней мере, FullHD).
Я пытался this , но, очевидно, после того, как я использую PyDotPlus, объект больше не является точечным, поэтому простая команда оболочки не работала.Вот код.
from sklearn.datasets import load_iris
import pydotplus
import numpy
iris = load_iris()
FEATURES = ['Sepal length (cm)','Sepal width (cm)','Petal length (cm)','Petal width (cm)']
CLASS = ['Iris setosa','Iris versicolor','Iris virginica']
# Model
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier(max_depth=1)
# Train
model.fit(iris.data, iris.target)
from sklearn.tree import export_graphviz
dot_data = export_graphviz(model,
feature_names=FEATURES,
out_file=None,
class_names = CLASS,
filled=True,
proportion = False,
precision = 2,
rounded=True,
)
graph = pydotplus.graph_from_dot_data(dot_data)
nodes = graph.get_node_list()
colors = ('lightskyblue3', 'green2', 'lightcoral', 'white')
for node in nodes:
if node.get_name() not in ('node', 'edge'):
values = model.tree_.value[int(node.get_name())][0]
#color only nodes where only one class is present
if max(values) == sum(values):
node.set_fillcolor(colors[numpy.argmax(values)])
#mixed nodes get the default color
else:
node.set_fillcolor(colors[-1])
graph.write_png('Tree.png')
# Display in jupyter notebook
from IPython.display import Image
Image(filename = 'Tree.png')
Хотя я мог настроить функцию "write_png", но я не нашел никакой документации по этому поводу.Когда я использую «помощь», все, что я получаю, это
Help on function <lambda> in module pydotplus.graphviz:
<lambda> lambda path, f='png', prog='dot'
Refer to the docstring accompanying the'write' method for more information.
Извините, я знаю, что это кажется очень наивным, но я просто не мог обойти это.Полученные изображения хороши для визуализации, но не для бумаги.Какие-нибудь советы?Заранее спасибо.