图形可视化决策树时遇到的问题:graph.write_pdf(“iris.pdf”) AttributeError: ‘list’ object has no attribute ‘write_pdf’

我的代码是跟随Google的机器学习课程编写的。两个代码是相同的。我不知道为什么会显示错误。可能是变量类型错误。但我的代码和Google的代码是一样的。谁遇到过这个问题?

这是错误信息

[0 1 2][0 1 2]Traceback (most recent call last):  File "/media/joyce/oreo/python/machine_learn/VisualizingADecisionTree.py", line 34, in <module>    graph.write_pdf("iris.pdf")AttributeError: 'list' object has no attribute 'write_pdf'[Finished in 0.4s with exit code 1][shell_cmd: python -u "/media/joyce/oreo/python/machine_learn/VisualizingADecisionTree.py"][dir: /media/joyce/oreo/python/machine_learn][path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]

这是代码

import numpy as npfrom sklearn.datasets import load_irisfrom sklearn import treeiris = load_iris()test_idx = [0, 50, 100]# training datatrain_target = np.delete(iris.target, test_idx)train_data = np.delete(iris.data, test_idx, axis=0)# testing datatest_target = iris.target[test_idx]test_data = iris.data[test_idx]clf = tree.DecisionTreeClassifier()clf.fit(train_data, train_target)print test_targetprint clf.predict(test_data) # viz codefrom sklearn.externals.six import StringIOimport pydotdot_data = StringIO()tree.export_graphviz(clf,        out_file=dot_data,        feature_names=iris.feature_names,        class_names=iris.target_names,        filled=True, rounded=True,        impurity=False)graph = pydot.graph_from_dot_data(dot_data.getvalue())graph.write_pdf("iris.pdf")

回答:

pydot.graph_from_dot_data() 返回的是一个列表,因此尝试使用以下代码:

graph = pydot.graph_from_dot_data(dot_data.getvalue())graph[0].write_pdf("iris.pdf") 

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注