绘制单个XGBoost决策树


问题内容

我在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")

而且,每棵树都将两个类分开,因此您拥有的树与类数一样多。