第一步:去官网下载适合自己电脑的graphviz 的exe文件Download | Graphviz https://www.graphviz.org/download/
第二布:调整环境变量
进入Path,并新建graphviz的路径 注意:在路径后加 \bin (如下图)
点击确定。并在cmd中输入 dot -version
若出现这种情况,即path设置完成
第三步:重启编译器:spyder,pycharm等等
第四步:生成doc文件
#1)导入相关库,准备训练数据集和测试数据集
from sklearn import datasets
iris = datasets.load_iris() # 导入函数
X = iris.data
y = iris.target
#2-1)建立决策树模型。调整各项参数,观察和比较分类结果,报告分类性能
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.3)
from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier() # 创建决策树
dtc.fit(X_train,y_train)
'''生成决策树dot文件'''
from sklearn.tree import export_graphviz
export_graphviz(dtc,out_file='C:/Users/Lenovo/Desktop/tree1.dot')
下面是我的doc文件内容:
digraph Tree {
node [shape=box] ;
0 [label="X[3] <= 0.75\ngini = 0.664\nsamples = 105\nvalue = [37, 37, 31]"] ;
1 [label="gini = 0.0\nsamples = 37\nvalue = [37, 0, 0]"] ;
0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;
2 [label="X[2] <= 4.95\ngini = 0.496\nsamples = 68\nvalue = [0, 37, 31]"] ;
0 -> 2 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;
3 [label="X[3] <= 1.65\ngini = 0.102\nsamples = 37\nvalue = [0, 35, 2]"] ;
2 -> 3 ;
4 [label="gini = 0.0\nsamples = 34\nvalue = [0, 34, 0]"] ;
3 -> 4 ;
5 [label="X[1] <= 3.1\ngini = 0.444\nsamples = 3\nvalue = [0, 1, 2]"] ;
3 -> 5 ;
6 [label="gini = 0.0\nsamples = 2\nvalue = [0, 0, 2]"] ;
5 -> 6 ;
7 [label="gini = 0.0\nsamples = 1\nvalue = [0, 1, 0]"] ;
5 -> 7 ;
8 [label="X[3] <= 1.75\ngini = 0.121\nsamples = 31\nvalue = [0, 2, 29]"] ;
2 -> 8 ;
9 [label="X[3] <= 1.55\ngini = 0.444\nsamples = 6\nvalue = [0, 2, 4]"] ;
8 -> 9 ;
10 [label="gini = 0.0\nsamples = 3\nvalue = [0, 0, 3]"] ;
9 -> 10 ;
11 [label="X[2] <= 5.45\ngini = 0.444\nsamples = 3\nvalue = [0, 2, 1]"] ;
9 -> 11 ;
12 [label="gini = 0.0\nsamples = 2\nvalue = [0, 2, 0]"] ;
11 -> 12 ;
13 [label="gini = 0.0\nsamples = 1\nvalue = [0, 0, 1]"] ;
11 -> 13 ;
14 [label="gini = 0.0\nsamples = 25\nvalue = [0, 0, 25]"] ;
8 -> 14 ;
}
第五步,也是最后一步:
在cmd 中 输入:
dot -Tpdf C:\Users\Lenovo\Desktop\tree1.dot -o C:\Users\Lenovo\Desktop\tree1.pdf
这里结构具体是这样: dot -Tpdf __文件路径__ -o __生成(文件路径)名字___
然后就可以打开pdf了
若要生成 png,则只需将 -Tpdf 改为 -Tpng 就行了
下面是我生成的pdf
这样:iris的树状图我们就有了!
最近新发现:
不在cmd,在python的prompt里也可以运行这个程序
这样一来,只要在文件内加如以下代码就可以了
import os
doc_path = 'C:/Users/Lenovo/Desktop/tree1.dot'
pdf_path = 'C:/Users/Lenovo/Desktop/tree2.pdf'
png_path = 'C:/Users/Lenovo/Desktop/tree2.png'
try:
os.system('dot -Tpdf '+doc_path+' -o '+pdf_path) # pdf
os.system('dot -Tpng '+doc_path+' -o '+png_path) # png
print('Successful')
except:
print('Failed Somehow')