web-dev-qa-db-ja.com

sklearnで決定木を視覚化する

ツリーを視覚化したいときに、このエラーが発生しました。

インポートされた必要なライブラリを示しました。 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:モジュール 'sklearn.tree'には属性 'plot_tree'がありません

2
Roshan

それの訳は plot_treeドキュメント に示されているように、sklearnバージョン0.21が新しいです。これを実行して、十分なバージョンがあるかどうかを確認します。

import sklearn

print(sklearn.__version__)

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

エラーメッセージが表示された場合は、sklearnを更新する必要があります

pip install --upgrade sklearn
1
Nicolas Gervais

ツリーをオブジェクトに割り当て、plt.show()を追加しました。これは私にとってはうまくいきます。

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

しかし、graphvizを使用することをお勧めします。

1
Anna Yashina

アップグレードsklearnパッケージ:

pip install --upgrade sklearn
1
Mohammad Nazari