classify関数によって得られた確率をROC曲線の出力をすることは可能でしょうか?
조회 수: 3 (최근 30일)
이전 댓글 표시
%% 微調整したネットワークを使用して検証イメージを分類
[YPred,probs] = classify(net,augimdsValidation);
% 正解率を表示
accuracy = mean(YPred == imdsValidation.Labels)
% 分類の混同行列を表示
C = confusionmat(imdsValidation.Labels,YPred)
confusionchart(C)
% ROC曲線の表示
[X,Y,T,AUC] = perfcurve(imdsTrain.Labels,probs,'anormaly')
AUC
plot(X,Y)
xlabel('False positive rate')
ylabel('True positive rate')
title('ROC for Classification')
画像の分類結果に関するROC曲線を出力したいのですが、classify関数を用いて画像の分類をし、そこで得られた確率(probs)を用いて、添付したコードの通り実行したところ、「スコアは浮動小数点のベクトルとして渡さなければなりません。」とエラーが出てきてしまいました。
2点質問があるのですが、
①classify関数によって得られた確率をROC曲線の出力をすることは可能でしょうか?
②①が可能である場合、どのように修正をすれば良いでしょうか?
よろしくお願いいたします。
댓글 수: 0
채택된 답변
Akira Agata
2020년 5월 9일
classify 関数によって得られた確率(スコア)からROC曲線を出力をすることは可能です。そのためには、プログラムを若干修正する必要があります。
まず、perfcurve 関数への入力は、エラーメッセージにもあるように「スコアは浮動小数点のベクトルとして渡さなければなりません」。一方、classify 関数の出力するスコアはN行M列の配列(N: データ数、M: 分類クラスの数)です。このため、たとえば 'anomaly' というクラスが1番目のクラスの場合、以下のように修正するとROC曲線を出力できます。
[X,Y,T,AUC] = perfcurve(imdsTrain.Labels,probs(:,1),'anormaly');
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Detection에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!