web-dev-qa-db-fra.com

Sklearn plot_tree plot est trop petit

J'ai ce code simple:

clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, y)

tree.plot_tree(clf.fit(X, y))
plt.show()

Et le résultat que j'obtiens est ce graphique: enter image description here

Comment rendre ce graphique lisible? J'utilise PyCharm Professional 2019.3 comme mon IDE.

5
Artur

Je pense que le paramètre que vous recherchez est fontsize. Vous devez équilibrer avec max_depth et figsize pour obtenir un tracé lisible. Voici un exemple

from sklearn import tree
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

X, Y = load_iris(return_X_y=True)
clf = tree.DecisionTreeClassifier()
fig, ax = plt.subplots(figsize=(12, 12))
tree.plot_tree(clf.fit(X, Y), max_depth=4, fontsize=10)
plt.show()

enter image description here

Si vous voulez capturer la structure de l'arbre entier, je suppose que la sauvegarde de l'intrigue avec une petite police et un dpi élevé est la solution. Ensuite, vous pouvez ouvrir une image et zoomer sur les nœuds spécifiques pour les inspecter.

clf = tree.DecisionTreeClassifier()
fig, ax = plt.subplots(figsize=(50, 24))
tree.plot_tree(clf.fit(X, Y), fontsize=6)
plt.savefig('tree_high_dpi', dpi=100)

Voici un exemple de son apparence sur le plus grand arbre.

enter image description here

enter image description here

1