我是xgboost的新手,我想可视化我的xgboost模型。
这是我的代码,该代码来自教程,可能没有错误。
from numpy import loadtxt
from xgboost import XGBClassifier
from xgboost import plot_tree
import matplotlib.pyplot as plt
dataset = loadtxt('pima-indians-diabetes.csv', delimiter=",")
X = dataset[:,0:8]
y = dataset[:,8]
model = XGBClassifier()
model.fit(X, y)
plot_tree(model)
plt.show()
我使用UBuntu并安装了graphviz,运行此代码将获得
Traceback (most recent call last):
File "a.py", line 15, in <module>
plot_tree(model)
File "/home/statham/anaconda2/lib/python2.7/site-packages/xgboost/plotting.py", line 214, in plot_tree
g = to_graphviz(booster, num_trees=num_trees, rankdir=rankdir, **kwargs)
File "/home/statham/anaconda2/lib/python2.7/site-packages/xgboost/plotting.py", line 160, in to_graphviz
raise ValueError('booster must be Booster instance')
ValueError: booster must be Booster instance
我知道关键是我的模型不是Booster实例,我搜索了Google却没有找到答案,有人可以告诉我如何将我的模型转换为Booster实例吗?提前致谢。
最佳答案
我找到答案。
只是改变
plot_tree(model)
进入:
plot_tree(model._Booster)
它会工作。
关于python - Xgboost plot_tree错误: ValueError: booster must be Booster instance,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45920007/