绘制单个 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 个特征,所有分割点的图看起来都很小,如何绘制清晰的一个或保存在本地或任何其他方式/想法可以清楚地显示这棵“树”非常受欢迎 在此处输入图像描述

原文由 Leon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 589
2 个回答

我最近遇到了同样的问题,我发现的唯一方法是尝试不同的图形大小(它仍然可以是大图形的蓝色。例如,要绘制第四棵树,请使用:

 fig, ax = plt.subplots(figsize=(30, 30))
xgb.plot_tree(model, num_trees=4, ax=ax)
plt.show()

要保存它,您可以这样做

plt.savefig("temp.pdf")

此外,每棵树将两个类别分开,因此您拥有与类别一样多的树。

原文由 Serk 发布,翻译遵循 CC BY-SA 4.0 许可协议

要添加到 Serk 的答案中,您还可以在显示之前调整图形的大小:

 # ...
plot_tree(model)
plt.gcf().set_size_inches(18.5, 10.5)
plt.show()

原文由 Learning is a mess 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题