2クラス分類問題にお​ける事後確率を用いた​拒否オプションについ​て

4 views (last 30 days)
Sae Onodera
Sae Onodera on 25 Jun 2020
Commented: Kenta on 29 Jun 2020
学習済みのCNNネットワークを用いて画像を2クラスに分類し、分類の事後確率がある値よりも高い場合にはCNNの分類結果を受け入れ、低い場合にはCNNの分類結果を拒否するプログラムを作成しようと考え、以下のようなコードで実行したところ、
エラー: confusionmat (line 71)
G と GHAT は同じタイプでなければなりません。
エラー: Squeezenet_ensemble (line 161)
C = confusionmat(imdsValidation.Labels,YPred)
というエラーが出てしまいました。
質問なのですが、事後確率の低い場合には拒否する、という場合にはクラス1・クラス2の分類のほかに分類結果を拒否する3つ目のクラスを定義する必要があるのでしょうか。よろしくお願いいたします。
% 事後確率に応じてCNNの分類結果を拒否するオプション
for i=1:filesuu
if ( probs(i,:) < 0.9)
YPred = 'Reject';
[img,info] = readimage(imdsValidation,i);
info.Filename
imshow(img)
end
end
% 正解率を表示
accuracy = mean(YPred == imdsValidation.Labels)
% 分類の混同行列を表示
C = confusionmat(imdsValidation.Labels,YPred)
confusionchart(C)

Accepted Answer

Kenta
Kenta on 25 Jun 2020
こんにちは、「~のほかに分類結果を拒否する3つ目のクラスを定義する必要があるのでしょうか」とありますが、confusion matrixをA, B, rejectの3つのカテゴリーで作成したい場合は、定義する必要がある(=imdsValidation.Labelsにrejectが含まれないとエラーを返す場合が多い)と思います。もしかしたらデータの入れ方次第では問題にはならないかもしれません。
ただ、本来的には、imdsValidation.Labels内にはAかBのみが入るはずで、rejectというカテゴリーの概念はないですよね。そのため、精度計算をした行の次の段階としては、reject以外のカテゴリをもつYPredとそれに対応するラベルでconfusion matrixを作るのかと想像していたのですがいかがでしょうか。
  2 Comments
Sae Onodera
Sae Onodera on 29 Jun 2020
ご回答ありがとうございます。
お返事が遅くなってしまってすみません。
2つ目に挙げてくださった手順でconfusion matrixを作ることができました。ありがとうございました。
Kenta
Kenta on 29 Jun 2020
はい、解決しよかったです。

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!