Python-利用Graphviz繪製決策樹

1,Graphvi安裝

[1]安裝包下載地址見此鏈接。[科學上網]下載速度比較快

[2]下載完msi之後,安裝在這個anaconda的路徑下。我的路徑是

E:\anaconda1\Lib\site-packages\

 然後就安裝就好了,首先測試一下pyhton是否能夠 import。下面截圖說明可以用。

然後找一下Graphviz.exe的路徑,直接在開始界面找一下路徑就行了[anaconda包太多了不好找],路徑是

E:\anaconda1\Lib\site-packages\bin\

把上面的路徑添加到系統變量中。然後再測試這個是否安裝好。

dot -version 下面這樣就是可以用。

2,決策樹的使用

沒辦法給數據,請自己拿紙鳶花試一試吧。

import pandas as pd
from sklearn import preprocessing
from sklearn.decomposition import PCA
import numpy as np
from sklearn import preprocessing 
from sklearn.model_selection import train_test_split
from sklearn import metrics  as ms
from sklearn import tree
import graphviz

data = pd.read_csv('C:\\Users\\happy\\Desktop\\t.csv')
y = data['label']
x = data[:,1:30]
########預處理#############
min_max_scaler = preprocessing.MinMaxScaler()
X_train = min_max_scaler.fit_transform(x)

pca = PCA(n_components=20) #保留的特徵 PCA降維
X_train = pca.fit_transform(X_train)

########## 隨機打亂#################
def dataset_split(X_train,y):#將訓練集和樣本分別代入函數
    x_train, x_test, y_train, y_test = train_test_split(X_train,y,\
                                            test_size=0.1,random_state=0)
    return x_train, x_test, y_train, y_test  #返回訓練樣本,測試樣本,訓練標籤,測試標籤

x_train, x_test, y_train, y_test  = dataset_split(X_train,y)

###############模型###########
dtc = tree.DecisionTreeClassifier(criterion="entropy")
clf = dtc.fit(x_train, y_train)
#print(clf.predict(x_test))
#print(y_test)
print('精確率',ms.precision_score(y_test, clf.predict(x_test),average='micro'))
dot_data = tree.export_graphviz(clf, out_file=None)
#print(dot_data)
graph = graphviz.Source(dot_data)
#print(graph)
os.environ["PATH"] += os.pathsep + 'C:\\Users\\happy\\Desktop\\'
graph.render("test", view=True)

最後的圖[未顯示全部]:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章