2017-08-28 3 views
2

Je suis nouveau sur xgboost et je veux visualiser mon modèle xgboost.Xgboost plot_tree Erreur: ValueError: Booster doit être Booster instance

Voici mon code, le code provient d'un tutoriel et n'a probablement pas de bug.

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() 

J'utilise ubuntu et j'ai installé graphviz, exécutez ce code va se

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 

Je sais que le point clé est mon modèle n'est pas une instance de Booster, je l'ai cherché Google et je n » ai pas t trouver un asnwer, quelqu'un peut-il me dire comment convertir mon modèle dans une instance de Booster? Merci d'avance.

Répondre

1

Je trouve la réponse.

il suffit de changer

plot_tree(model) 

dans:

plot_tree(model._Booster) 

et cela fonctionnera.

+0

Je suis si fier de moi-même. – Statham