実現したいこと
以下のようにmicro avgの項目を表示させたいです。
PowerShell
1score:1.0 2 presition recall f1score support 3 4 setosea 1.00 1.00 1.00 11 5 versicolor 1.00 1.00 1.00 11 6 virginica 1.00 1.00 1.00 16 7 8 micro avg 1.00 1.00 1.00 38 9 macro avg 1.00 1.00 1.00 38 10 weighted avg 1.00 1.00 1.00 38
前提
pythonで「scikit-learn」ライブラリのirisデータを用いてSVMモデルで学習を行いレポート表示を行いました。
発生している問題・エラーメッセージ
micro avgが表示されず、代わりに該当する部分にaccuracyが表示されました。
エラーメッセージはありません。実行結果は以下の通りです。
PowerShell
1SVC(C=100.0) 2score:1.0 3 presition recall f1score support 4 5 setosea 1.00 1.00 1.00 15 6 versicolor 1.00 1.00 1.00 11 7 virginica 1.00 1.00 1.00 12 8 9 accuracy 1.00 38 10 macro avg 1.00 1.00 1.00 38 11 weighted avg 1.00 1.00 1.00 38 12 13[[15 0 0] 14 [ 0 11 0] 15 [ 0 0 12]]
該当のソースコード
python
1ソースコード 2from sklearn.datasets import load_iris 3from sklearn.model_selection import train_test_split 4from sklearn.svm import SVC 5from sklearn.metrics import accuracy_score, confusion_matrix, classification_report 6 7# データ読み込み 8iris = load_iris() 9X_train, X_test, Y_train, Y_test = train_test_split(iris.data, iris.target, test_size=0.25) 10 11model = SVC(C=100., gamma='scale') 12print(model) 13model.fit(X_train, iris.target_names[Y_train]) 14 15pred = model.predict(X_test) 16score = accuracy_score(iris.target_names[Y_test], pred) 17print('score:%s' % score) 18print(classification_report(iris.target_names[Y_test], pred)) 19print(confusion_matrix(iris.target_names[Y_test], pred))
試したこと
chatgpt3.5に質問したが、修正されたコードを実行しても同様の結果になり、修正したコードを提供し質問した後、指示された通りにコードを修正し実行したが、エラーが表示され、以降質問を繰り返してもエラーが続発してしまう。
scikit-learning,pip,powershell,windowsのアップデートを行ったが結果は変わらなかった。
test-size(予測用のデータ)の値を変えても結果は変わらなかった。
powershell、コマンドプロンプトで同じコードを実行したが同じような結果になった。
補足情報(FW/ツールのバージョンなど)
使用したpythonバージョンは3.11.4、scikit-learnバージョンは1.3.0です。PowerShellのバージョンは5.1.22621.1778です。
「teratail」での質問は初めてです。回答よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー