我正在尝试运行以下代码:
from sklearn.datasets import load_iris
from sklearn import tree
import pydot
clf = tree.DecisionTreeClassifier()
iris = load_iris()
clf = clf.fit(iris.data, iris.target)
from sklearn.externals.six import StringIO
from pydot import *
dotfile = StringIO()
tree.export_graphviz(clf, out_file = dotfile)
pydot.graph_from_dot_data(dot_data.getvalue()).write_png("dtree2.png")
我收到以下错误: AttributeError:module' pydot'没有属性' graph_from_dot_data'
我努力寻找解决方案,但无法做到。请有人在这方面帮助我。
答案 0 :(得分:4)
1)如果您使用的是python 3 +
,请使用pydotplus2)将最后一行更改为 pydotplus.graph_from_dot_data(dotfile.getvalue())。write_png(“dtree2.png”),因为您的变量名称是'dotfile'而不是'dot_data'< / p>
P.S - 安装pydotplus后重新安装graphviz
希望这有帮助!
答案 1 :(得分:2)
pydot.graph_from_dot_data()
会返回一个列表,请尝试:
graphs = pydot.graph_from_dot_data(dot_data.getvalue())
graphs[0].write_png("dtree2.png")