日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

属实逼真,决策树可视化!

發布時間:2024/9/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 属实逼真,决策树可视化! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

同學們好

決策樹的可視化,我以為之前介紹的方法已經夠驚艷了(決策樹可視化,被驚艷到了!),沒想到最近又發現了一個更驚艷的,而且更逼真,話不多說,先看效果圖↓

直接繪制隨機森林也不在話下

下面就向大家介紹一下這個神器 —— pybaobabdt

安裝GraphViz

pybaobabdt依賴GraphViz,首先下載安裝包

http://www.graphviz.org/download/

http://www.graphviz.org/download/

2、雙擊msi文件,然后一直選擇next(默認安裝路徑為C:\Program Files (x86)\Graphviz2.38\),安裝完成之后,會在windows開始菜單創建快捷信息。

3、配置環境變量:計算機→屬性→高級系統設置→高級→環境變量→系統變量→path,在path中加入路徑:

4、驗證:在windows命令行界面,輸入dot -version,然后按回車,如果顯示如下圖所示的graphviz相關版本信息,則安裝配置成功。

安裝pygraphviz和pybaobabdt

pip直接安裝pygraphviz的話,大概率會報錯,建議下載whl文件本地安裝。

https://www.lfd.uci.edu/~gohlke/pythonlibs

pybaobabdt就簡單了,直接pip install pybaobabdt 即可

pybaobabdt用法

pybaobabdt 用起來也簡單到離譜,核心命令只有一個pybaobabdt.drawTree,下面是官方文檔示例代碼,建議在jupyter-notebook中運行。

import?pybaobabdt import?pandas?as?pd from?scipy.io?import?arff from?sklearn.tree?import?DecisionTreeClassifier from?matplotlib.colors?import?LinearSegmentedColormap from?matplotlib.colors?import?ListedColormap from?colour?import?Color import?matplotlib.pyplot?as?plt import?numpy?as?npdata?=?arff.loadarff('vehicle.arff') df???=?pd.DataFrame(data[0]) y?=?list(df['class']) features?=?list(df.columns)features.remove('class') X?=?df.loc[:,?features]clf?=?DecisionTreeClassifier().fit(X,?y)ax?=?pybaobabdt.drawTree(clf,?size=10,?dpi=72,?features=features,?colormap='Spectral')

這個圖怎么看呢?

不同的顏色對應不同的分類(target),每個分叉處都標記了分裂的條件,所以劃分邏輯一目了然。樹的深度也是工整的體現了出來。

樹枝的直徑也不是擺設,而是代表了樣本的個數(比例),該劃分條件下的樣本越多,樹干也就越粗。

你是發現最最底層的樹枝太細太脆弱的時候,是不是應該考慮一下過擬合風險,比如需要調整一下最小樣本數?

繪制隨機森林

import?pybaobabdt import?pandas?as?pd from?scipy.io?import?arff import?matplotlib.pyplot?as?plt from?sklearn.ensemble?import?RandomForestClassifier data?=?arff.loadarff('vehicle.arff')df?=?pd.DataFrame(data[0]) y?=?list(df['class']) features?=?list(df.columns) features.remove('class') X?=?df.loc[:,?features]clf?=?RandomForestClassifier(n_estimators=20,?n_jobs=-1,?random_state=0) clf.fit(X,?y) size?=?(15,15) plt.rcParams['figure.figsize']?=?size fig?=?plt.figure(figsize=size,?dpi=300)for?idx,?tree?in?enumerate(clf.estimators_):ax1?=?fig.add_subplot(5,?4,?idx+1)pybaobabdt.drawTree(tree,?model=clf,?size=15,?dpi=300,?features=features,?ax=ax1)fig.savefig('random-forest.png',?format='png',?dpi=300,?transparent=True)

怎么用,是不是很酷,趕緊去試試吧!
如有收獲,可否在看、收藏、轉發一下?感謝~

參考:https://mp.weixin.qq.com/s/uIazCL9SjNDguu59up5KjA

END

各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗一下哦!(歡迎提建議)

推薦閱讀

牛逼!Python常用數據類型的基本操作(長文系列第①篇)

牛逼!Python的判斷、循環和各種表達式(長文系列第②篇)

牛逼!Python函數和文件操作(長文系列第③篇)

牛逼!Python錯誤、異常和模塊(長文系列第④篇)

總結

以上是生活随笔為你收集整理的属实逼真,决策树可视化!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。