看到别人论文里面有这样的实现效果,觉得挺高大上的,后来找了一些文章,终于找到了绘制方法。
绘制方案
绘制单个决策树可以提供对给定数据集的梯度提升过程的洞察,帮助理解里面的原理过程。现在举例XGboost模型绘制梯度提升树的方法。
在xgboost库中提供了专门的方法 plot_tree() 用来绘制梯度提升树,在绘制树时将训练好的模型作为方法的第一个参数。
plot_tree(model)
通过matplotlib和plt.show()来打印图像,这样的方法会默认绘制第一颗梯度提升树。(对了,有个前提条件是得先安装好graphviz库才能展现会上面的图来。)
工程案例
接下来展示一个完整的绘制的代码,比如我们使用xgboost在印第安人糖尿病数据集上训练一个模型并打印出训练好的第一颗梯度提升树来,可以看到对应的是下面这样的代码。
# plot decision tree
from numpy import loadtxt
from xgboost import XGBClassifier
from xgboost import plot_tree
import matplotlib.pyplot as plt
# load data
dataset = loa