4

我正在尝试运行以下代码:

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:模块'pydot'没有属性'graph_from_dot_data'

我一直在努力寻找解决方案,但无法做到。请有人在这方面帮助我。

4

2 回答 2

4

1) 如果您使用的是 python 3+,请使用 pydotplus

2)将最后一行更改为pydotplus.graph_from_dot_data(dotfile.getvalue()).write_png("dtree2.png")因为您的变量名称是 'dotfile' 而不是 'dot_data'

PS - 安装 pydotplus 后重新安装 graphviz

希望这可以帮助!

于 2016-02-23T10:55:27.177 回答
2

pydot.graph_from_dot_data()返回一个列表,所以尝试:

graphs = pydot.graph_from_dot_data(dot_data.getvalue())
graphs[0].write_png("dtree2.png")
于 2016-08-26T15:13:32.520 回答