用graphviz視覺化決策樹
阿新 • • 發佈:2018-11-16
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)