<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          屬實(shí)逼真,決策樹可視化!

          共 2554字,需瀏覽 6分鐘

           ·

          2022-02-26 11:49

          同學(xué)們好

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

          直接繪制隨機(jī)森林也不在話下

          下面就向大家介紹一下這個(gè)神器 —— pybaobabdt

          安裝GraphViz

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

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

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

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

          3、配置環(huán)境變量:計(jì)算機(jī)→屬性→高級(jí)系統(tǒng)設(shè)置→高級(jí)→環(huán)境變量→系統(tǒng)變量→path,在path中加入路徑:

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

          安裝pygraphviz和pybaobabdt

          pip直接安裝pygraphviz的話,大概率會(huì)報(bào)錯(cuò),建議下載whl文件本地安裝。

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


          pybaobabdt就簡(jiǎn)單了,直接pip install pybaobabdt 即可

          pybaobabdt用法

          pybaobabdt 用起來(lái)也簡(jiǎn)單到離譜,核心命令只有一個(gè)pybaobabdt.drawTree,下面是官方文檔示例代碼,建議在jupyter-notebook中運(yùn)行。

          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?np

          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?=?DecisionTreeClassifier().fit(X,?y)

          ax?=?pybaobabdt.drawTree(clf,?size=10,?dpi=72,?features=features,?colormap='Spectral')

          這個(gè)圖怎么看呢?

          不同的顏色對(duì)應(yīng)不同的分類(target),每個(gè)分叉處都標(biāo)記了分裂的條件,所以劃分邏輯一目了然。樹的深度也是工整的體現(xiàn)了出來(lái)。

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

          你是發(fā)現(xiàn)最最底層的樹枝太細(xì)太脆弱的時(shí)候,是不是應(yīng)該考慮一下過擬合風(fēng)險(xiǎn),比如需要調(diào)整一下最小樣本數(shù)?

          繪制隨機(jī)森林

          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)

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

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

          END


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

          推薦閱讀


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

          牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長(zhǎng)文系列第②篇)

          牛逼!Python函數(shù)和文件操作(長(zhǎng)文系列第③篇)

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


          瀏覽 28
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美V日韩V国产V | 人人人人人草 | 欧美v亚洲v日韩v最新在线 | 欧美操逼视频免费观看 | 国产女人操逼打咆视频 |