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文件