質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1226閲覧

clf.fit(X_train, y_train)の不正解を具体的に出力したい

arumisoy

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/08 11:43

編集2021/12/08 12:53

前提・実現したいこと

python sklearn 予測データと正解データに関してお伺いします
model.fit()などで予測を行った後の不正解データを
具体的に出力するにはどうしたらいいでしょうか

該当のソースコード

python

1from sklearn.model_selection import train_test_split 2from sklearn.metrics import classification_report 3from sklearn.tree import DecisionTreeClassifier 4import numpy as np 5import pandas as pd 6 7 8data = pd.read_csv("test2.csv") #utf-8 # データの準備 9 10 11X = data.loc[:, ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11', 'A12', 'A13', 'A14', 'A15', 'A16', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A23', 'A24', 'A25', 'A26', 'A27', 'A28', 'A29', 'A30', 'A31', 'A32', 'A33', 'A34', 'A35', 'A36', 'A37', 'A38', 'A39', 'A40', 'A41', 'A42', 'A43', 'A44', 'A45', 'A46', 'A47', 'A48', 'A49', 'A50']].values #.as_matrix() # 説明変数 12 13 14y = data['A103'].values #.as_matrix() # 目的変数 15X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 16 17 18clf = DecisionTreeClassifier() # 学習 19clf.fit(X_train, y_train) 20pred = clf.predict(X_test) # 予測 21print(y_test, pred) 22print(classification_report(y_test, pred)) # Precision, Recall, F1-score # 評価

試したこと

test2.csvを読み込み,実行したところ
以下のような出力がありました

test2.csvの内容は以下の通りです

,A101,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48,A49,A50,A103
1,AAA,0.085777,.....,-0.379371,0.0
2,BBB,0.181901,.....,-0.268229,1.0
3,CCC,0.021309,.....,0.018542,0.0

(出力)
[0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.]
precision recall f1-score support

0.0 1.00 1.00 1.00 86884 1.0 0.98 0.98 0.98 1812 accuracy 1.00 88696

macro avg 0.99 0.99 0.99 88696
weighted avg 1.00 1.00 1.00 88696

(結果)
1.0と予測したもののうち98%が正解でした
1812個のうち不正解だったデータを具体的に
知りたいのですが,どのように出力すればいいでしょうか

2,BBB,0.181901,.....,-0.268229,1.0
が0.0と予測された場合,不正解ですから
不正解は「BBB」と表示させたいと思っています

教えていただきたくよろしくお願いいたします

補足情報(FW/ツールのバージョンなど)

windows 10
python 3.8.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/12/08 12:35

pythonのコードの一番最初の行のすぐ上に ```python だけの行を追加してください また、pythonのコードの一番最後の行のすぐ下に ``` だけの行を追加してください または、 https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif を見て、そのようにしてみてください 現状、コードがとても読み辛いです 質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
arumisoy

2021/12/08 12:54

ご指摘ありがとうございます.修正いたしました.
guest

回答1

0

ベストアンサー

コードの最後に

python

1incorrect = X_test[pred != y_test] 2print(incorrect)

を追加して実行したら、間違ったサンプルのデータ(説明変数)が全部表示されます

不正解は「BBB」と表示させたい

「incorrect」から、表示させたい部分だけ取り出してください

投稿2021/12/09 08:04

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arumisoy

2021/12/09 10:59

有難うございます. 無事取り出すことができました. 本など見てもあまり不正解の分析がなかったので助かりました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問