在決策樹模型的部署中蒋畜,使用sklearn庫提供的現(xiàn)成方案是省事的方法备畦,但為對其進行可視化操作泌类,使用pydotplus-Graphviz庫必不可少-如何正常使用該庫給我造成了一些困擾主守。
目標是決策樹模型的繪制捡絮,最終輸出如圖:
在最終解決問題并實現(xiàn)如圖決策樹模型的輸出后革答,我覺得有必要記錄問題解決的步驟战坤,以期有助于其他情況下類似問題的解決,同時也為自己留下備忘残拐。
默認已經(jīng)完成CartTree模型本身的訓練過程途茫,在sklearn框架的基礎上我們擁有Tree對象。接下來我們要做的事情有幾步:
1溪食、安裝Graphviz軟件囊卜。在2018年11月16日可供使用的官方鏈接如下:
點擊圖中框紅msi文件,運行错沃,注意安裝路徑(例如C:/Program Files (x86)/Graphviz2.38)
2栅组、安裝成功后,配置環(huán)境變量枢析,包括C:/Program Files (x86)/Graphviz2.38和C:/Program Files (x86)/Graphviz2.38/bin玉掸,注意第二個變量,尤其關鍵醒叁。環(huán)境變量的配置可以通過windows+s組合鍵調(diào)出搜索框司浪,搜索關鍵詞(環(huán)境變量配置)找到,或者控制面板中找辐益。
在我的實踐中断傲,執(zhí)行以上操作后全部無效。
原因不明(我也不知道為什么......)智政,在同事的幫助下认罩,通過import os,os.environ["path"]+=os.pathsep+"路徑"代碼插入的方式運行成功续捂。(這個文檔最有價值的地方就在這里垦垂。注意os庫應具備。)
3牙瓢、Graphviz軟件安裝成功后劫拗,即可以正常方式安裝Python庫:pydotplus、graphviz矾克。
4页慷、在配置完成Graphviz可視化工具后,畫出我想要的決策樹。sklearn庫集成了graphviz庫中的export_graphviz方法酒繁,作為sklearn中tree對象的屬性滓彰。因此,在tree對象即決策樹模型已經(jīng)訓練完畢的前提下州袒,可以通過tree.export_graphviz()輸出能被graphviz庫處理的.dot文件揭绑。
代碼如下:
dot_data=tree.export_graphviz(model_tree, out_file=None, max_depth=5, feature_names=names_list, filled=True,rounded=True)
使用pydotplus庫調(diào)用graph_from_dot_data()方法將生成的.dot文件轉(zhuǎn)置為.graph圖形對象。.graph圖形對象不能直接可視化郎哭,可以通過write_pdf/write_jpg等方法轉(zhuǎn)置為可打開的文件查看他匪。
這樣就成功安裝了Graphviz庫,并使用該庫解決了決策樹模型的可視化問題夸研。如果對你有所幫助邦蜜,請為我點個贊,thankyou陈惰。