决策树可视化的前提是电脑上装了Graphviz,然后利用python装的第三方库pydotplus将图转换为png或pdf的格式。
import pydotplus
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
...
# 方法一 ,存为dot格式的文件,用Graphviz打开
with open('iris.dot', 'w') as f:
tree.export_graphviz(model, out_file=f)
# 方法二,
tree.export_graphviz(model, './iris.dot')
# 方法三,输出为pdf和png格式
# 输出为pdf格式
dot_data = tree.export_graphviz(model, out_file=None, feature_names=iris_feature, class_names=iris_class, filled=True, rounded=True, special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf('./iris.pdf')
# 输出为png格式
f = open('./iris.png', 'wb'):
f.write(graph.create_png())
f.close()
在dot_data中参数主要是用来修饰导出决策树的样子。
feature_names是将训练数据特征按照fit的顺序放入,class_names是目标值,放入的都是可迭代对象。filled表示决策树的节点填充渐变色,rounded表示方格四边加倒角处理。