1. 程式人生 > >用graphviz視覺化決策樹

用graphviz視覺化決策樹

1.安裝graphviz。

下載地址在:http://www.graphviz.org/。如果你是linux,可以用apt-get或者yum的方法安裝。如果是windows,就在官網下載msi檔案安裝。無論是linux還是windows,裝完後都要設定環境變數,將graphviz的bin目錄加到PATH,比如我是windows,將C:/Program Files (x86)/Graphviz2.38/bin/加入了PATH

2.安裝python外掛graphviz。

import graphviz

3.安裝python外掛pydotplus。

import pydotplus

from IPython.display import Image

這樣環境就搭好了,有時候python會很笨,仍然找不到graphviz,這時,可以在程式碼裡面加入這一行:

os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

注意後面的路勁是你自己的graphviz的bin目錄。

4、繪圖

#用決策樹建模

clf = tree.DecisionTreeClassifier() #預設的選取最優節點的標準是基尼係數,若想使用資訊增益則為entropy
clf = clf.fit(Xtrain, Ytrain)
score = clf.score(Xtest, Ytest) #
返回預測的準確度 print(str(clf)) print(score)

#用graphviz會畫得決策樹

輸出至專案資料夾(中文亂碼沒有解決):

import pydotplus
import os
from sklearn.externals.six import StringIO
os.environ["PATH"] += os.pathsep + 'E:\graphviz\bin'
dot_data = StringIO()
tree.export_graphviz(clf #模型
                            ,feature_names= feature_name  #
tez ,class_names=["琴酒","雪莉","貝爾摩德"] #類別名 ,filled=True #由顏色標識不純度 ,rounded=True #樹節點為圓角矩形 ,out_file=dot_data ) graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) graph.write_pdf("wine.pdf") #https://blog.csdn.net/chai_zheng/article/details/78226556

生成tree.dot檔案,再用graphviz生成:

#生成tree.dot檔案
with open("tree.dot", 'w') as f: f = tree.export_graphviz(clf , feature_names = feature_name # tez , class_names = ["琴酒", "雪莉", "貝爾摩德"] # 類別名 , filled = True # 由顏色標識不純度 , rounded = True # 樹節點為圓角矩形 ,out_file=f)