用graphviz可視化決策樹


1.安裝graphviz。

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。

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會畫得決策樹(沒有解決中文亂碼的問題???十分苦惱)

輸出PDF至項目文件夾:

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)

 a)通過graphviz的exe程序導入dot文件生成相對應的png或者pdf文件

 b)通過命令行dot -Tpdf tree.dot -o output.pdf,dot -Tpng tree.dot -o output.png將dot文件生成png或者pdf文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM