我正在尝试使用tutorial中的plot_tree
我正在使用虹膜数据集来训练模型,这是我的代码:
from numpy import loadtxt
from xgboost import XGBClassifier
from xgboost import plot_tree
import matplotlib.pyplot as plt
import shap
X,y = shap.datasets.iris()
y = pd.Series([v if v==1 else 0 for v in y])
model = XGBClassifier()
model.fit(X, y)
# plot single tree
plot_tree(model)
plt.show()
从那里,我得到这个错误:
ValueError: Unable to parse node: 0:[petal
我不知道在哪里寻找该模型,因为该模型可以毫无问题地进行训练和预测。
我正在使用sklearn的版本'0.20.3'
最佳答案
我有同样的问题,它与graphviz的安装无关。在我的情况下,问题是我的pandas dataFrame的某些列名称带有空格。
另请参见关于github的讨论。
当我添加
df.rename(columns = lambda x: x.replace(' ', '_'), inplace=True)
经过我的预处理,它解决了问题。
关于python - Xgboost plottree错误:无法解析节点:0:[花瓣,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57422912/