web-dev-qa-db-fra.com

Visualiser l'arbre de décision dans sklearn

Lorsque je veux visualiser l'arbre, j'ai eu cette erreur.

J'ai montré les bibliothèques requises importées. Y a-t-il une raison attendue avec jupiter-notebook?

from sklearn import tree
import matplotlib.pyplot
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer
cancer=load_breast_cancer()
x=cancer.data
y=cancer.target
clf=DecisionTreeClassifier(max_depth=1000)
x_train,x_test,y_train,y_test=train_test_split(x,y)
clf=clf.fit(x_train,y_train)
tree.plot_tree(clf.fit(x_train,y_train))

AttributeError: le module 'sklearn.tree' n'a pas d'attribut 'plot_tree'

2
Roshan

Ceci est dû au fait plot_tree est nouveau est sklearn version 0.21, comme indiqué dans documentation . Vérifiez si vous disposez d'une version suffisante en exécutant ceci:

import sklearn

print(sklearn.__version__)

assert float(sklearn.__version__[2:]) >= 21, 'sklearn version insufficient.'

Si vous obtenez un message d'erreur, vous devez mettre à jour sklearn

pip install --upgrade sklearn
1
Nicolas Gervais

J'ai assigné l'arborescence à un objet et ajouté plt.show(). Cela fonctionne pour moi.

%matplotlib inline
from sklearn import tree
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()
x = cancer.data
y = cancer.target
clf = DecisionTreeClassifier(max_depth = 1000)
x_train,x_test,y_train,y_test = train_test_split(x,y)

fig = clf.fit(x_train,y_train)
tree.plot_tree(fig)
plt.show()

Mais je recommande d'utiliser graphviz, c'est beaucoup plus flexible.

1
Anna Yashina

mise à niveau sklearn package:

pip install --upgrade sklearn
1
Mohammad Nazari