在路径中找不到“.dot”-将 PATH 添加到 Windows 环境变量后
".dot" not found in path - After adding PATH to Windows Environment variables
我正在尝试使用 Graphviz2 可视化随机森林。我正在使用的代码如下所示。但是,当我尝试读取 .dot 文件时,出现以下错误:
FileNotFoundError: [WinError 2] "dot" not found in path
我看到其他人也遇到过这个错误,已经通过修改Windows环境变量解决了。我在路径中添加了以下内容:
C:\Program Files (x86)\Graphviz2.38\bin;
C:\Program Files (x86)\Graphviz2.38\;
C:\Users\Adarsh\Anaconda3\Lib\site-packages\graphviz
None 本作品。
import pickle
filename = '11f_rf_roc91.sav'
loaded_model = pickle.load(open(filename, 'rb'))
import os
from sklearn.tree import export_graphviz
import six
import pydot
from sklearn import tree
dotfile = six.StringIO()
i_tree = 0
for tree_in_forest in loaded_model.estimators_:
export_graphviz(tree_in_forest, out_file='tree.dot', feature_names = list(X), class_names = ["0", "1"], rounded = True, proportion = False, precision = 2, filled = True)
(graph,) = pydot.graph_from_dot_file('tree.dot')
name = 'tree' + str(i_tree)
graph.write_png(name+ '.png')
os.system('dot -Tpng tree.dot -o tree.png')
i_tree +=1
提到的路径没问题。您的 dot_data 文件本身存在问题。为清楚起见,也请参阅内联注释。
# 这里的所有导入语句都符合 Python PEP 约定。
import os
import pydot
import pickle
from sklearn import tree
from sklearn.tree import export_graphviz # this can be even > import export_graphviz <
from sklearn.externals.six import StringIO # shortened StringIO instead of six.StringIO
filename = '11f_rf_roc91.sav'
loaded_model = pickle.load(open(filename, 'rb'))
dot_data = StringIO() # this is data not filename "dotfile".
i_tree = 0
for tree_in_forest in loaded_model.estimators_:
export_graphviz(tree_in_forest,
out_file = dot_data, # now linked to correct file data
feature_names = list(X), # X seems not to be defined.
class_names = ["0", "1"],
rounded = True,
proportion = False,
precision = 2,
filled = True)
graph = pydot.graph_from_dot_file(dot_data)
name = 'tree' + str(i_tree)
graph.write_png(name+ '.png')
os.system('dot -Tpng tree.dot -o tree.png')
i_tree += 1
我正在尝试使用 Graphviz2 可视化随机森林。我正在使用的代码如下所示。但是,当我尝试读取 .dot 文件时,出现以下错误:
FileNotFoundError: [WinError 2] "dot" not found in path
我看到其他人也遇到过这个错误,已经通过修改Windows环境变量解决了。我在路径中添加了以下内容:
C:\Program Files (x86)\Graphviz2.38\bin;
C:\Program Files (x86)\Graphviz2.38\;
C:\Users\Adarsh\Anaconda3\Lib\site-packages\graphviz
None 本作品。
import pickle
filename = '11f_rf_roc91.sav'
loaded_model = pickle.load(open(filename, 'rb'))
import os
from sklearn.tree import export_graphviz
import six
import pydot
from sklearn import tree
dotfile = six.StringIO()
i_tree = 0
for tree_in_forest in loaded_model.estimators_:
export_graphviz(tree_in_forest, out_file='tree.dot', feature_names = list(X), class_names = ["0", "1"], rounded = True, proportion = False, precision = 2, filled = True)
(graph,) = pydot.graph_from_dot_file('tree.dot')
name = 'tree' + str(i_tree)
graph.write_png(name+ '.png')
os.system('dot -Tpng tree.dot -o tree.png')
i_tree +=1
提到的路径没问题。您的 dot_data 文件本身存在问题。为清楚起见,也请参阅内联注释。
# 这里的所有导入语句都符合 Python PEP 约定。
import os
import pydot
import pickle
from sklearn import tree
from sklearn.tree import export_graphviz # this can be even > import export_graphviz <
from sklearn.externals.six import StringIO # shortened StringIO instead of six.StringIO
filename = '11f_rf_roc91.sav'
loaded_model = pickle.load(open(filename, 'rb'))
dot_data = StringIO() # this is data not filename "dotfile".
i_tree = 0
for tree_in_forest in loaded_model.estimators_:
export_graphviz(tree_in_forest,
out_file = dot_data, # now linked to correct file data
feature_names = list(X), # X seems not to be defined.
class_names = ["0", "1"],
rounded = True,
proportion = False,
precision = 2,
filled = True)
graph = pydot.graph_from_dot_file(dot_data)
name = 'tree' + str(i_tree)
graph.write_png(name+ '.png')
os.system('dot -Tpng tree.dot -o tree.png')
i_tree += 1