生成可視化決策樹代碼
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier()
clf.fit(X,y)
import pydotplus
from IPython.display import Image
import sklearn.tree as tree
dot= tree.export_graphviz(clf_hh,out_file=None,feature_names=X.columns,
class_names=['0','1','2'],
max_depth=2,filled=True,rounded=True,special_characters=True)
graph= pydotplus.graph_from_dot_data(dot)
Image(graph.create_png())
錯誤解決方式
- 下載安裝GraphViz(這是一個獨立軟件)
https://graphviz.gitlab.io/_pages/Download/Download_windows.html -
將GraphViz安裝目錄的bin目錄放到環境變量的path路徑中
- 安裝pydotplus
cmd下pip install pydotplus - 如果還不行手動添加bin路徑
語句如下
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/' #注意修改你的路徑
顯示中文
from sklearn import tree
from sklearn.externals.six import StringIO
import graphviz
dot_data = StringIO()
tree.export_graphviz(dt, out_file=dot_data, #dt 決策樹模型 #out_file=dot_data必填
feature_names=score.columns[:-1],
class_names=['top25','top25-50','top50-75','top75-100'],
filled=True, rounded=True, # doctest: +SKIP
special_characters=True)
graph = graphviz.Source(dot_data.getvalue())
graph
graph.render("dx_fig01") #生成PDF文件