J'utilise la méthode sur https://machinelearningmastery.com/visualize-gradient-boosting-decision-trees-xgboost-python/ pour tracer un arbre de décision 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()
Comme j'ai 150 fonctionnalités, l'intrigue semble assez petite pour tous les points de partage, comment en dessiner un clair ou l'enregistrer à un endroit local ou toute autre manière/idée pourrait clairement montrer que cet "arbre" est très apprécié
J'ai eu le même problème récemment et la seule façon que j'ai trouvée est d'essayer des tailles de figures différentes (cela peut toujours être bleuâtre avec de grandes figures. Par exemple, pour tracer le 4ème arbre, utilisez:
fig, ax = plt.subplots(figsize=(30, 30))
xgb.plot_tree(model, num_trees=4, ax=ax)
plt.show()
Pour l'enregistrer, vous pouvez faire
plt.savefig("temp.pdf")
De plus, chaque arbre sépare deux classes, vous avez donc autant d'arbres que de classes.
Pour ajouter à la réponse de Serk, vous pouvez également redimensionner la figure avant de l'afficher:
# ...
plot_tree(model)
fig = plt.gcf()
fig.set_size_inches(18.5, 10.5)
plt.show()
J'ai trouvé cette solution sur github, ce qui donne également de meilleures images avec l'inconvénient que vous devez ouvrir le fichier .png après.
xgb.plot_tree(bst, num_trees=2)
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(150, 100)
fig.savefig('tree.png')
Vous pouvez essayer d'utiliser la méthode to_graphviz à la place - pour moi, cela donne une image beaucoup plus claire.
xgb.to_graphviz (xg_reg, num_trees = 0, rankdir = 'LR')
Cependant, vous aurez probablement des problèmes avec la taille de cette sortie.
Dans ce cas, procédez comme suit: Comment puis-je spécifier la taille d'une représentation graphique de l'arbre de décision