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

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

詳細はこちら
Keras

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

機械学習

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

Python

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

Q&A

解決済

1回答

1285閲覧

kerasのaccuracyは、多クラス分類の場合モデルの精度が悪くても高い値になるのではないか?

fdaskjlfda

総合スコア40

Keras

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

機械学習

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

Python

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

0グッド

0クリップ

投稿2019/10/22 09:36

編集2019/10/22 09:38

質問内容

タイトルのとおりです。

そう思う根拠は、
accuracy = (TP + TN) / (TP + TN + FP + FN)

なので、多クラス分類の場合、(例えば、4クラス分類の場合)

np.argmax(predict)np.argmax(y_true)が同じ場合

python

1accuracy = 1

np.argmax(predict)np.argmax(y_true)が違う場合

np.argmax(predict) : 1
np.argmax(y_true) : 3
の場合、

名称0123
predict0100
y_true0001
accuracy1010

なので

python

1accuracy = 2 / 4

両方の確率とaccuracyを掛けると

モデルがランダムな値を返すAIの場合、accuracyの値は、

math

1# 確率 x accuracy 21/4 * 1 + 3/4 * 1/2 = 5/8

よって、accuracyの平均値は5/8となります。

任意のカテゴリー数xに対するaccuracyは、

math

1accuracy = 1/x * 1 + (x - 1)/x * (x - 2)/x 2<=> accuracy = (x^2 - 2x + 2)/(x^2) 3<=> accuracy = (1 - 2/x + 2/x^2)

x -> infの極限値は、
accuracy = 1
となるので、カテゴリー数が多いほどaccuracyは1に近づくのではないでしょうか?

おそらく、上に述べた理由の中に間違った部分があると思うので、指摘していただけると嬉しいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

特に間違っていません。

カテゴリ数が多く、かつほとんどのカテゴリに含まれない場合、当然の結果としてaccuracyは高くなります。

分類機の評価としてaccuracyを使うはふさわしくありません。
評価にはF値(F-Score)を使うことが多いでしょう。「機械学習 F値」などで検索するといいかと思います。


本題ではないですが、精度という言葉を特に注釈なく使った場合は、accuracyそのものを指す、つまりaccuracyの訳語として精度と言うことが多いです。

ここでは「モデルの精度」がaccuracyを指していないのは明らかですのでいいですが、一応書いておきます。

投稿2019/10/22 09:58

quickquip

総合スコア11231

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

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

fdaskjlfda

2019/10/22 10:01

そうなんですね ありがとうございます! また、精度という言葉についてもわかりました ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問