其他分享
首页 > 其他分享> > 【疑难杂症】关于用pydotplus生成iris.pdf报错问题

【疑难杂症】关于用pydotplus生成iris.pdf报错问题

作者:互联网

在使用刘建平老师博客中DecisionTreeClassifier实例时,遇到报错:InvocationException: GraphViz's executables not found
源代码如下

from itertools import product

import numpy as np
import matplotlib.pyplot as plt

from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier


# 仍然使用自带的iris数据
iris = datasets.load_iris()
X = iris.data[:, [0, 2]]
y = iris.target

# 训练模型,限制树的最大深度4
clf = DecisionTreeClassifier(max_depth=4)
#拟合模型
clf.fit(X, y)


# 画图
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.1),
                     np.arange(y_min, y_max, 0.1))

Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)

plt.contourf(xx, yy, Z, alpha=0.4)
plt.scatter(X[:, 0], X[:, 1], c=y, alpha=0.8)
plt.show()

到这里都没有问题,然后开始生成生成树的图像,下面是代码

from IPython.display import Image  
from sklearn import tree
import pydotplus 
dot_data = tree.export_graphviz(clf, out_file=None, 
                         feature_names=iris.feature_names,  
                         class_names=iris.target_names,  
                         filled=True, rounded=True,  
                         special_characters=True)  
graph = pydotplus.graph_from_dot_data(dot_data)  
Image(graph.create_png())

开始报错
InvocationException: GraphViz's executables not found
通过百度得知是没有配置好graphviz的环境变量
但是我又不知道我的graphviz装在了哪里
所以我用everything(一个很好用的查找文件的软件)找到了我的graphviz在bin文件下的所在位置
然后再编辑环境变量
最后成功跑通代码

标签:iris,min,max,pydotplus,graphviz,报错,np,import
来源: https://www.cnblogs.com/lugendary/p/16026053.html