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

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

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

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

Q&A

解決済

2回答

326閲覧

keyerrorの理由が分かりません。

Auran

総合スコア5

Python

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

0グッド

0クリップ

投稿2022/08/04 05:58

編集2022/08/04 06:10

機械学習のプログラミングについてなのですが、評価指数を使い、精度を求めたいのですが、添付の画像のようにKeyErrorが出てきてしまいます。
正答率でやった時にはエラーが出なかったので、キーは登録されてるはずなので、なぜKeyerrorが出るのか分かりませんでしたので質問させていただきました。

発生している問題・エラーメッセージ

keyerror

エラーメッセージ![イメージ説明]KeyError Traceback (most recent call last) <ipython-input-14-db522e2f48b0> in <module>() 6 plt.title(metric) #グラフのタイトルを表示 7 ----> 8 plt_train= history. history [metric] # historyから訓練データの評価を取り出す 9 plt_test = history. history ['val_'+ metric] # historyからテストデータの評価を取り出す 10 KeyError: 'recall ### 該当のソースコード ```ここに言語名を入力 python history = model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs =10) metrics_2 = ['recall','precision'] plt.figure(figsize = (10, 5)) for i in range(len(metrics_2)): metric = metrics_2[i] plt.subplot(1, 2, i+1) #figureを1×2のスペースに分け、 i+1番目のスペースを使う plt.title(metric) #グラフのタイトルを表示 plt_train= history. history [metric] # historyから訓練データの評価を取り出す plt_test = history. history ['val_'+ metric] # historyからテストデータの評価を取り出す plt.plot(plt_train, label='training') #訓練データの評価をグラフにプロット plt.plot(plt_test, label='test') #テストデータの評価をグラフにプロット plt.legend # ラベルの表示 plt.show() #グラフの表示 ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

ベストアンサー

modelなどが不明なので参考程度ですがKerasでのKeyError: 'acc'での回答のようにhistory.historyの中身が意図したものになっているか確認してください。

投稿2022/08/04 06:10

can110

総合スコア38266

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

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

Auran

2022/08/04 07:10

history.historyの中身は {'loss': [0.14480702579021454, 0.05942722409963608, 0.04712315648794174, 0.038140054792165756, 0.032760266214609146, 0.028077565133571625, 0.02591230906546116, 0.02128118835389614, 0.021326575428247452, 0.019375665113329887], 'accuracy': [0.9551833271980286, 0.9822666645050049, 0.9856500029563904, 0.98826664686203, 0.9898333549499512, 0.9913166761398315, 0.9920833110809326, 0.993399977684021, 0.9932666420936584, 0.9937833547592163], 'val_loss': [0.0421944335103035, 0.029695425182580948, 0.026453787460923195, 0.026094168424606323, 0.02873886190354824, 0.022205999121069908, 0.01939433068037033, 0.025086749345064163, 0.02586461789906025, 0.02351215109229088], 'val_accuracy': [0.9855999946594238, 0.989300012588501, 0.9909999966621399, 0.9918000102043152, 0.9911999702453613, 0.993399977684021, 0.9936000108718872, 0.9921000003814697, 0.9922999739646912, 0.9927999973297119]} になっていました。 ありがとうございます。
guest

0

from tensorflow.keras.metrics import Precision, Recall
model.compile(loss="binary_crossentropy", optimizer="sgd", metrics=[Precision(), Recall()])

can110さんの解答を参考に考え、調べたところ、上記のコードをインポートすることで解決できたようです
ありがとうございました。

投稿2022/08/04 07:34

Auran

総合スコア5

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問