網站首頁 編程語言 正文
利用sklearn畫出決策樹并保存為PDF
下載Graphviz
進入官網下載并安裝:
https://graphviz.gitlab.io/_pages/Download/Download_windows.html
并將下列路徑配置為環(huán)境變量:
- D:\software\Graphviz\bin
在cmd中測試:
dot -version
python代碼
import numpy as np import pandas as pd from sklearn import tree import graphviz # x,y是sklearn中需要擬合的數據 x = np.array(exam_train) y = np.array(classes_train) clf = tree.DecisionTreeClassifier(criterion='entropy', class_weight='balanced', max_depth=25) clf = clf.fit(x, y) dot_data = tree.export_graphviz(clf, out_file=None, feature_names=None, filled=True, rounded=True) # 重要參數可定制 graph = graphviz.Source(dot_data) graph.render(view=True, format="pdf", filename="decisiontree_pdf")
可以生成一張賊帥的決策樹PDF:
python sklearn 決策樹運用
數據形式(tree.csv)
age look income orderly target older ugly low yes no young ugly high no no young handsome low no no young handsome high yes yes young handsome medium yes yes young handsome medium no no
python源代碼:
# -*- coding:utf-8*- # 將字典 轉化為 sklearn 用的數據形式 數據型 矩陣 from sklearn.feature_extraction import DictVectorizer import csv from sklearn import preprocessing from sklearn import tree allElectronicsData = open('c:/pic/data/tree.csv','rb') reader = csv.reader(allElectronicsData) header = reader.next() # print header ## 數據預處理 featureList = [] labelList = [] for row in reader: # print row[-1] labelList.append(row[-1]) # 下面這幾步的目的是為了讓特征值轉化成一種字典的形式,就可以調用sk-learn里面的DictVectorizer,直接將特征的類別值轉化成0,1值 rowDict = {} for i in range(1, len(row) - 1): rowDict[header[i]] = row[i] featureList.append(rowDict) for each in featureList: print each # Vectorize features vec = DictVectorizer() dummyX = vec.fit_transform(featureList).toarray() print("dummyX:"+str(dummyX)) print(vec.get_feature_names()) # label的轉化,直接用preprocessing的LabelBinarizer方法 lb = preprocessing.LabelBinarizer() dummyY = lb.fit_transform(labelList) print("dummyY:"+str(dummyY)) print("labelList:"+str(labelList)) #criterion是選擇決策樹節(jié)點的 標準 ,這里是按照“熵”為標準,即ID3算法;默認標準是gini index,即CART算法。 clf = tree.DecisionTreeClassifier() clf = clf.fit(dummyX,dummyY) print("clf:"+str(clf)) # 導入相關函數,可視化決策樹 # 導出的結果是一個dot文件(在系統(tǒng)默認路勁),需要安裝Graphviz才能將它住哪華為PDF或png格式 # 輸出的dot文件可以使用graphvize軟件轉為PDF,graphvize安裝目錄中的bin目錄放入到環(huán)境變量的Path中 # 使用如下命令 #cmd # dot -Tpdf c:/tree.dot -o c:/tree.pdf #下載地址:http://www.graphviz.org/Download_windows.php #生成dot文件 with open("c:/tree.dot",'w') as f: f = tree.export_graphviz(clf, feature_names= vec.get_feature_names(),out_file= f)
原文鏈接:https://blog.csdn.net/qq_43650934/article/details/107286860
相關推薦
- 2022-06-10 SQL?Server使用導出向導功能_MsSql
- 2022-11-07 C語言內存函數?memcpy,memmove?,memcmp_C 語言
- 2022-11-30 C語言實現單鏈表的基本操作分享_C 語言
- 2022-09-15 Docker運行Nacos容器自動退出問題的解決方法_docker
- 2023-01-15 React?Fiber樹的構建和替換過程講解_React
- 2022-11-27 Git基礎學習之文件刪除操作命令詳解_相關技巧
- 2022-11-14 CSS樣式中選擇器+盒子模型+定位+浮動
- 2022-06-28 python神經網絡使用Keras進行模型的保存與讀取_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支