2016-07-08 3 views
1

Я использую IPython для Windows10 для обучения и вычеркивания дерева решений. Я знаю, что следующий код работал над linux некоторое время назад. Я установил pydot, а также имеет graphviz (с правильно указанным путем).Ошибка атрибута с помощью Pydot для создания графика

# Train and draw out a decision tree 

from IPython import display 
from sklearn import datasets, tree, utils 
from sklearn.externals.six import StringIO 
import pydot 

# Train a small decision tree on the iris dataset 
dataset = datasets.load_iris() 
X_iris, y_iris = utils.shuffle(dataset.data, dataset.target,random_state=42) 
tree_clf = tree.DecisionTreeClassifier(max_depth=3).fit(X_iris, y_iris) 

# Generate a plot of the decision tree 
dot_data = StringIO() 
tree.export_graphviz(tree_clf, out_file=dot_data) 
graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
display.Image(graph.create_png()) 

Я получаю следующее сообщение об ошибке:

--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-5-3452aa5e9794> in <module>() 
    15 tree.export_graphviz(tree_clf, out_file=dot_data) 
    16 graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
---> 17 display.Image(graph.create_png()) 

AttributeError: 'list' object has no attribute 'create_png' 
+0

Пожалуйста, форматировать вывод так, что читается – Dbz

+0

я удалил неформатированный текст - это просто значение, содержащееся в dot_data.getvalue() и не может быть уместным в этой точке – rahul

ответ

1

Я решил эту проблему, изменив всю команду pydot в pydotplus (включая import pydotplus) Возможно использование !pip install pydotplus для установки пакета pydotplus..

Ссылка https://github.com/scikit-learn/scikit-learn/pull/7342/files

+0

Да, в python 3.5 это был единственный способ исправить проблему. Благодаря! –