在使用決策樹算法進行分類的時候,有時候我們想看看決策樹究竟是如何進行分類的。下面,將介紹使用sklearn來構建一個決策樹,並導出決策樹的結果dot文件,通過GraphViz將dot文件,保存成一張圖片。
一、決策樹實現鳶尾花的分類
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
import pandas as pd
if __name__ == "__main__":
#構建一顆決策樹
#決策樹的深度為5,以信息增益作為屬性的劃分準則即ID3樹
tree = DecisionTreeClassifier(criterion="entropy",max_depth=10,random_state=0)
#讀取鳶尾花數據
data = pd.read_csv("iris.data")
#獲取鳶尾花數據的標籤
y_label = data.iloc[:,4].values
#獲取鳶尾花的特徵
x = data.iloc[:,[0,1,2,3]].values
tree.fit(x,y_label)
#導出結果dot文件
export_graphviz(tree,out_file="tree.dot",feature_names=["萼片長度","萼片寬度","花瓣長度","花瓣寬度"])
二、下載安裝GraphViz
1、官網下載地址:https://graphviz.gitlab.io/_pages/Download/Download_windows.html
2、下載之後,雙擊msi文件進行安裝
3、配置環境變量,將安裝好的graphviz目錄下的bin目錄路徑添加到path中
三、將dot文件轉成圖片
dot -Tpng tree.dot -o tree.png
裝換之後會出現中文會出現亂碼,在dot文件中的node上一行添加下面的行
node [shape=plaintext, fontname="Microsoft Yahei"];//添加行
node [shape=box] ;
閱讀更多 機器學習之路 的文章