2クラス分類問題における事後確率を用いた拒否オプションについて
4 views (last 30 days)
Show older comments
学習済みの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)
0 Comments
Accepted Answer
Kenta
on 25 Jun 2020
こんにちは、「~のほかに分類結果を拒否する3つ目のクラスを定義する必要があるのでしょうか」とありますが、confusion matrixをA, B, rejectの3つのカテゴリーで作成したい場合は、定義する必要がある(=imdsValidation.Labelsにrejectが含まれないとエラーを返す場合が多い)と思います。もしかしたらデータの入れ方次第では問題にはならないかもしれません。
ただ、本来的には、imdsValidation.Labels内にはAかBのみが入るはずで、rejectというカテゴリーの概念はないですよね。そのため、精度計算をした行の次の段階としては、reject以外のカテゴリをもつYPredとそれに対応するラベルでconfusion matrixを作るのかと想像していたのですがいかがでしょうか。
More Answers (0)
See Also
Categories
Find more on イメージを使用した深層学習 in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!