[英]Plot a Single XGBoost Decision Tree
我正在使用https://machinelearningmastery.com/visualize-gradient-boosting-decision-trees-xgboost-python/上的方法來繪制 XGBoost 決策樹
from numpy import loadtxt
from xgboost import XGBClassifier
from xgboost import plot_tree
import matplotlib.pyplot as plt
# load data
dataset = loadtxt('pima-indians-diabetes.csv', delimiter=",")
# split data into X and y
X = dataset[:,0:8]
y = dataset[:,8]
# fit model no training data
model = XGBClassifier()
model.fit(X, y)
# plot single tree
plot_tree(model)
plt.show()
當我得到 150 個特征時,所有分割點的情節看起來都很小,如何繪制一個清晰的或保存在本地位置或任何其他方式/想法可以清楚地表明這棵“樹”是非常受歡迎的
我最近遇到了同樣的問題,我發現的唯一方法是嘗試不同的圖形大小(它仍然可以是大圖形的藍色。例如,要繪制第 4 棵樹,請使用:
fig, ax = plt.subplots(figsize=(30, 30))
xgb.plot_tree(model, num_trees=4, ax=ax)
plt.show()
要保存它,你可以這樣做
plt.savefig("temp.pdf")
此外,每棵樹都將兩個類分開,因此您擁有與類一樣多的樹。
要添加到 Serk 的答案中,您還可以在顯示之前調整圖形的大小:
# ...
plot_tree(model)
fig = plt.gcf()
fig.set_size_inches(18.5, 10.5)
plt.show()
您可以嘗試改用 to_graphviz 方法 - 對我來說,它會產生更清晰的圖片。
xgb.to_graphviz(xg_reg, num_trees=0, rankdir='LR')
但是,您很可能會遇到該輸出大小的問題。
在這種情況下,請遵循以下步驟: 如何指定決策樹的 graphviz 表示的 figsize?
我在 github 上找到了這個解決方法,它也提供了更好的圖像,但缺點是你必須在之后打開 .png 文件。
xgb.plot_tree(bst, num_trees=2)
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(150, 100)
fig.savefig('tree.png')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.