🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

Q&A

2回答

1872閲覧

python:kerasの学習結果の評価をしたい。

python_2019

総合スコア68

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

0グッド

0クリップ

投稿2019/10/04 16:37

◆ 今、以下のようにkerasで学習した結果を、accuracyで評価しています。

# keras # 学習の実行 model.fit(x_train,y_train,epochs=10,batch_size=4, verbose=0) # 評価の実行 score = model.evaluate(x_test,y_test) print('accuracy:', score[1]) 60/60 [==============================] - 0s 0us/step accuracy: 0.7499999920527141

◆ これを、以下、サポートベクターマシンの評価指標のように、もう少し詳しく評価するにはどうすればよいでしょうか?

ご指導頂ければ助かります。 
よろしくお願いいたします。

# サポートベクターマシン # テストデータで試した正解率を返す   accuracy = clf.score(x_test, y_test) print(f"正解率⇒ {accuracy}") # 学習済モデルを使ってテストデータを分類した結果を返す predicted = clf.predict(x_test) # 詳しいレポート # precision(適合率): 選択した正解/選択した集合 # recall(再現率) : 選択した正解/全体の正解 # F-score(F値) : 適合率と再現率はトレードオフの関係にあるため print("classification report") print(metrics.classification_report(y_test, predicted)) 正解率⇒ 0.8 classification report precision recall f1-score support 0 0.00 0.00 0.00 12 1 0.80 1.00 0.89 48 accuracy 0.80 60 macro avg 0.40 0.50 0.44 60 weighted avg 0.64 0.80 0.71 60

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

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

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

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

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

guest

回答2

0

いったん、予測を行ってからclassificatin_reportを使うといいかと思います。

perd=model.predict(x_test) print(metrics.classificatin_report(y_test,pred))

という感じでしょうか

投稿2019/10/05 02:54

R.Shigemori

総合スコア3376

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

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

python_2019

2019/10/05 09:08

ご指導ありがとうございます。 ご指摘の通り、修正しましたら、以下のエラーが出ました。 どこか間違っているのでしょうか? お教え頂ければ助かります。 NameError Traceback (most recent call last) <ipython-input-9-4d2eb4e0706b> in <module> 5 6 perd=model.predict(x_test) ----> 7 print(metrics.classificatin_report(y_test,pred)) NameError: name 'metrics' is not defined
R.Shigemori

2019/10/05 22:00

metricsをimportしないと使えません。svmのときと同じように書けばいいと思います。
python_2019

2019/10/07 03:50

ご指導ありがとうございます。 SVMの時と同様、以下のように、metricsをimportした(つもり)なのですが、やはり、なぜかエラーが出てしまいます。 何度もお聞きして申し訳ございません。 引き続きご指導頂ければ、大変助かります。 # 学習の実行 model.fit(x_train,y_train,epochs=10,batch_size=4, verbose=0) # 評価の実行 from sklearn import metrics from sklearn.metrics import classification_report perd=model.predict(x_test) print(metrics.classificatin_report(y_test,pred)) --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-41-07e67a8721a4> in <module> 8 9 perd=model.predict(x_test) ---> 10 print(metrics.classificatin_report(y_test,pred)) AttributeError: module 'sklearn.metrics' has no attribute 'classificatin_report'
R.Shigemori

2019/10/07 08:56

metrics.の部分を削除したらどうなりますか? classification_reportのimportはうまくいっているのであれば、結果がでるはずです
python_2019

2019/10/07 10:53

ご指導ありがとうございます。 ご指摘の通り、修正したのですが、やはりエラーが出てしまいます... なかなかむつかしいです。。 何度も、申し訳ございません。 from sklearn import metrics from sklearn.metrics import classification_report ​ perd=model.predict(x_test) print(classificatin_report(y_test,pred)) --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-12-f7641b779595> in <module> 3 4 perd=model.predict(x_test) ----> 5 print(classificatin_report(y_test,pred)) NameError: name 'classificatin_report' is not defined
R.Shigemori

2019/10/07 10:57

関数の名前がおかしくです
python_2019

2019/10/07 13:46

ご回答、どうもありがとうございます。 この件について、現在の私の知識では、どうも解決しなさそうな感じですので、一度、基本に戻って勉強しなおして、ちゃんと理解できてから、再度チャレンジしたいと思います。 いろいろ、ありがとうございました。
guest

0

評価関数を利用すれば如何でしょう?
評価関数の利用方法

投稿2019/10/04 22:39

nandymak

総合スコア799

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

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

python_2019

2019/10/05 09:38

ご指導ありがとうございます。 リンク先の評価関数の利用方法を見たのですが、わたくしのレベルではよく理解できませんでした。 以下のように、コードを書いて実行してみたのですが、エラーとなってしまいます。 エラーメッセージ最後の、 「AttributeError: module 'keras.metrics' has no attribute 'classificatin_report'」がポイントかと思いますが、どのように対処すればよろしいでしょうか? お教え頂ければ大変助かります。 よろしくおねがいいたします。 # 学習の実行 model.fit(x_train,y_train,epochs=10,batch_size=4, verbose=0) # 評価の実行 score = model.evaluate(x_test,y_test) print('accuracy:', score[1]) perd=model.predict(x_test) print(metrics.classificatin_report(y_test,pred)) 60/60 [==============================] - 0s 0us/step accuracy: 0.800000007947286 --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-21-3203c3b147c3> in <module> 8 9 perd=model.predict(x_test) ---> 10 print(metrics.classificatin_report(y_test,pred)) AttributeError: module 'keras.metrics' has no attribute 'classificatin_report'
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問