Я читал вопросы о stackoverflow, и решение, похоже, вставляло полный путь, однако после этого у меня появляется ошибка имени. Я использую Windows 10 Python 3.7.1.
это мой код:
from sklearn.tree import export_graphviz
export_graphviz(
tree_clf,
out_file = image_path("C:/Users/my_name/Desktop/iris_tree.dot"),# path where you want it to output
feature_names=iris.feature_names[2:],
class_names = iris.target_names,
rounded=True,
filled=True
)
он не импортируется, когда я импортирую export_graphviz?
Не похоже на это из вашего оператора импорта, или вы не используете пространство имен. Что заставляет вас думать, что это будет волшебным образом импортировано?
Что такое image_path
? export_graphviz
принимает параметр с именем out_file
, который может быть строкой или файловым объектом:
file object or string, optional (default=None)
Поэтому я бы написал:
from sklearn.tree import export_graphviz
f = open("C:/Users/my_name/Desktop/iris_tree.dot", 'w')
export_graphviz(
tree_clf,
out_file=f, # path where you want it to output
feature_names=iris.feature_names[2:],
class_names = iris.target_names,
rounded=True,
filled=True
)
Если вы следуете книге Aurelien Geron «Hands on Machine Learning with Scikit-Learn and TensorFlow», вот определение image_path
из его Гитхаб (все еще не делая то, что вы хотели, я бы просто использовал свое первое решение):
import os
# Where to save the figures
PROJECT_ROOT_DIR = "."
CHAPTER_ID = "decision_trees"
def image_path(fig_id):
return os.path.join(PROJECT_ROOT_DIR, "images", CHAPTER_ID, fig_id)
насколько я понимаю, image_path создает график, используя строковые значения. Если вы выведете его без image_path, он выведет файл MS Word, где вам придется вручную преобразовать его, посетив webgraphviz в браузере и скопировав, вставив для создания графика.
image_path
не существует. Не в вашем модуле и не в sklearn
. И вы не можете изменить способ вывода export_graphviz
в файл.
У меня была такая же проблема раньше. Основываясь на АдамГолд и Джек Стивенс, это то, что я сделал, и я преобразовал точечный файл в png (вы также можете преобразовать его в pdf).
from sklearn.tree import export_graphviz
with open("/Users/Desktop/tree.dot", 'w') as f:
export_graphviz(tree_clf,
out_file = f,
feature_names = iris.feature_names[2:],
class_names = iris.target_names,
rounded = True, filled = True)
# convert a dot file to a png/pdf
from graphviz import Source
dot_path = "/Users/Desktop/tree.dot"
output = Source.from_file(dot_path, format = "png") # can change png to pdf
output.view()
Куда вы импортируете
image_path
?