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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

决策树可视化保姆级教程

發布時間:2023/12/4 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 决策树可视化保姆级教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

決策樹可視化指南

決策樹是機器學習的一種經典的模型,因其泛化性能好,可解釋性強而被廣泛應用到實際商業預測中。通常在我們完成決策樹模型搭建后,我們會進一步研究分析我們搭建好的模型,這時候模型的可視化就顯得尤為重要。下面是生成的決策樹可視化圖像:

插件安裝

scikit-learn中決策樹的可視化一般需要安裝graphviz。主要包括graphviz庫的安裝和python的graphviz插件的安裝。
安裝graphviz庫:

  • pip install graphviz

安裝graphviz插件:

  • 安裝插件地址:http://www.graphviz.org,下載對應的插件。
  • 安裝插件(默認安裝地址,直接一直點下一步直到完成安裝)
  • 環境配置: 復制安裝目錄的bin路徑:C:\Program Files\Graphviz\bin
    (a)打開我的電腦,點擊屬性

    (b)選擇高級設置

    (c)選擇環境變量

    (d)雙擊選擇Path進入

    (e)新建,粘貼的前面復制的bin路徑,點擊確定

    (f)重啟jupter notebook即可
  • 可視化的三種方法

    搭建模型

    from sklearn import tree dtree = tree.DecisionTreeClassifier() dtree.fit(x_train,y_train)

    在搭建完決策樹后,下面介紹可視化具體操作的三種方法
    方法一:
    簡單粗暴,一行代碼搞定什么都不用安裝。缺點也很明顯,生成的可視化圖比較模糊,且不能保存圖片,違背了可視化的初衷,不建議使用這種方法。

    tree.plot_tree(bdtree,filled=True)

    方法二:
    這種方法比較常用,需要安裝graphviz庫和graphviz插件,安裝方法上面已經介紹。這種使用這種方法得到的圖像比較高清,并且還會額外生成PDF文件和一個文本文件。比較推薦使用。

    import graphviz dot_data = tree.export_graphviz(dtree,out_file=None,feature_names=feature_names,class_names=class_names,filled=True,rounded=True,special_characters=True) graph = graphviz.Source(dot_data) graph.render('computer')

    方法三:
    最后一種方法是最麻煩的,除了需要安裝graphviz庫和graphviz插件,還需要安裝:

    • pip install pydotplus
    • pip install six
      這種方法得到的圖像比較清晰,且可以雙擊放大縮小,可以保存為png圖片和pdf文檔。這種方法根據個人需求使用吧。
    # 決策樹可視化 import graphviz import pydotplus from six import StringIO from sklearn.tree import export_graphviz from IPython.display import Image# 文件緩存 dot_data = StringIO() # 將決策樹導入到dot中 export_graphviz(bdtree, out_file=dot_data, filled=True, rounded=True,special_characters=True,feature_names = feature_names,class_names=class_names) # 將生成的dot文件生成graph print(feature_names) graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) # 將結果存入到png文件中 graph.write_png('diabetes.png') graph.write_pdf('diabetes.pdf') # 顯示 Image(graph.create_png())

    注意事項

    在我們做可視化的時候,需要注意中各重要的參數:

  • feature_names
  • class_names
  • 在做可視化的時候需要傳入這兩個參數,這兩個參數都需要傳入一個列表類型的數據,并且兩個參數需要與模型傳入的數據一一對應,否則就違背了可視化的初衷了。
    feature_names:
    假如我們的數據格式是DataFrame格式通常可以在數據處理后通過以下方法獲取(也可以手動輸入):

    feature_names = data.columns[:-1]

    class_names:

    • 這個參數如果類別數不多的話,最好手動輸入。或者通過data[‘分類標簽’].unique()獲取后再做格式轉換和順序調整

    決策樹可視化實戰

    from sklearn import tree import pandas as pddata = pd.read_csv('zoo.csv') data.head()# 獲取訓練數據和標簽 x_data = data.drop(['animal_name', 'class_type'], axis=1) y_data = data['class_type']# 搭建模型 dtree = tree.DecisionTreeClassifier() dtree.fit(x_data,y_data)# 獲取feature_names和class_names feature_names = data.columns[1:-1]cls_n = data.class_type.unique() class_names = [] for i in cls_n:class_names.append(str(i)) class_names.sort()# # 方法一 # tree.plot_tree(dtree,filled=True)# # 方法二 # import graphviz# dot_data = tree.export_graphviz(dtree, # out_file=None, # feature_names=feature_names, # class_names=cls_n, # filled=True, # rounded=True, # special_characters=True) # graph = graphviz.Source(dot_data)# graph.render('computer') # graph # 方法三 import graphviz import pydotplus from six import StringIO from IPython.display import Image # 文件緩存 dot_data = StringIO() # 將決策樹導入到dot中 tree.export_graphviz(dtree, out_file=dot_data, filled=True, rounded=True,special_characters=True,feature_names = feature_names,class_names=class_names) # 將生成的dot文件生成graph print(feature_names) graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) # 將結果存入到png文件中 graph.write_png('diabetes.png') graph.write_pdf('diabetes.pdf') # 顯示 Image(graph.create_png())

    總結

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

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