決策樹可視化
python機(jī)器學(xué)習(xí)決策樹可視化
前置安裝
-
安裝graphviz服務(wù)
- 下載安裝包(windows的msi安裝包) https://graphviz.org/
- 執(zhí)行安裝
- 將安裝目錄(graphviz的根目錄下的bin文件夾路徑添加到環(huán)境變量path中)
-
安裝python的
graphviz插件pip install graphviz -
安裝python的
pydotplus插件pip install pydotplus
構(gòu)建一個(gè)簡單的決策樹模型
import pandas as pd
# 讀取數(shù)據(jù)
datas = pd.read_csv("../data/iris/iris.data", header=None, sep=",")
# 提取特征變量和目標(biāo)變量
x = datas.iloc[:, 0:-1]
y = pd.Categorical(datas[4]).codes
# 劃分訓(xùn)練集和測試集
from sklearn.model_selection import train_test_split
train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=0.2, random_state=42)
# 模型訓(xùn)練與搭建
from sklearn import tree
from sklearn.preprocessing import MinMaxScaler
from sklearn.tree import DecisionTreeClassifier
from sklearn.decomposition import PCA
decision_tree_model = DecisionTreeClassifier(criterion="gini", random_state=42, max_depth=5, min_samples_split=10)
pca_best = PCA(n_components=2)
mms_best = MinMaxScaler()
train_xx = pca_best.fit_transform(train_x)
test_xx = pca_best.transform(test_x)
decision_tree_model.fit(train_xx, train_y)
test_y_pred = decision_tree_model.predict(test_xx)
可視化構(gòu)建
# 方式1:輸出形成dot文件,然后使用graphviz的dot命令將dot文件轉(zhuǎn)換為pdf文件
from sklearn import tree
with open("iris.dot", "w") as f:
# 將模型model輸出到指定的文件中
f = tree.export_graphviz(decision_tree_model,out_file=f)
# 命令行執(zhí)行 dot -Tpdf iris.dot -o iris.pdf
# 方式2:直接使用pydotplus插件生成pdf文件
import pydotplus
from sklearn import tree
dot_data = tree.export_graphviz(
decision_tree_model,
out_file=None,
filled=True,
rounded=True,
special_characters=True,
)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf("iris.pdf")
結(jié)果示例


浙公網(wǎng)安備 33010602011771號