実現したいこと
all_estimatorsメソッドがインポートでき、アルゴリズムの正解率を比較したいです
ご教授お願いします。
試したことの手順
python
1コード 2import pandas as pd 3from sklearn.model_selection import train_test_split 4from sklearn.metrics import accuracy_score 5from sklearn.utils import all_estimators 6import warnings 7 8# アヤメデータの読み込み 9iris_data = pd.read_csv("iris.csv", encoding="utf-8") 10 11# アヤメデータをラベルと入力データに分離する 12y = iris_data.loc[:,"Name"] 13x = iris_data.loc[:,["SepalLength","SepalWidth","PetalLength","PetalWidth"]] 14 15# 学習用とテスト用に分離する 16x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, train_size = 0.8, shuffle = True) 17 18# classifierのアルゴリズム全てを取得する --- (※1) 19allAlgorithms = all_estimators(type_filter="classifier") 20warnings.simplefilter("error") 21 22for(name, algorithm) in allAlgorithms : 23 try : 24 # 各アリゴリズムのオブジェクトを作成 --- (※2) 25 if(name == "LinearSVC") : 26 clf = algorithm(max_iter = 10000) 27 else: 28 clf = algorithm() 29 30 # 学習して、評価する --- (※3) 31 clf.fit(x_train, y_train) 32 y_pred = clf.predict(x_test) 33 print(name,"の正解率 = " , accuracy_score(y_test, y_pred)) 34 35 # Warningのの内容を表示し、Exceptionは無視する --- (※4) 36 except Warning as w : 37 print("\033[33m"+"Warning:"+"\033[0m", name, ":", w.args) 38 except Exception as e : 39 pass
##エラー内容
python
1コード 2--------------------------------------------------------------------------- 3ImportError Traceback (most recent call last) 4<ipython-input-2-38f4aacaa912> in <module>() 5 2 from sklearn.model_selection import train_test_split 6 3 from sklearn.metrics import accuracy_score 7----> 4 from sklearn.utils import all_estimators 8 5 import warnings 9 6 10 11ImportError: cannot import name 'all_estimators' 12
補足情報
pythonバージョン:python3.9.1
PC:Mac(macOS Big sur 11.1)
参考書籍:「pythonによるAI・機械学習・深層学習アプリの作り方 クジラ飛行机」
使用してる環境:Annaconda Jupyter notebook
あなたの回答
tips
プレビュー