どのようにして、CNNの識別結果について混合行列でプロットすることができますか?
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 27 Nov. 2017
Beantwortet: MathWorks Support Team
am 27 Nov. 2017
Neural Network Toolbox で提供される例題「分類用のシンプルな深層学習ネットワークの作成」 において CNNを使って手書き数字の識別例があります。
この例題では、モデル作成後、テスト画像を入力して、モデル出力と教師の精度を単純にパーセンテージであらわしていますが、混合行列でプロットするためにはどのようにすればよいでしょうか?
Akzeptierte Antwort
MathWorks Support Team
am 30 Nov. 2017
Statistics and Machine Learning Toolbox をお持ちの場合
Statistics and Machine Learning Toolbox で提供される confusionmat 関数および、 heatmap 関数の組み合わせより混合行列をプロットすることができます。
>> [cmat,classNames] = confusionmat(TTest, YTest);
>> h = heatmap(classNames, classNames, cmat)
Statistics and Machine Learning Toolbox をお持ちでない場合
Neural Network Toolbox に、 plotconfusion 関数が用意されています。
仕様として、category 配列を直接取り扱うことができないため、 一旦、double型に変換して、 識別番号0,1,2, ~ 9 として出力する必要があります。
また、識別番号0を (1,0,0,0,0,0,0,0,0,0), 識別番号2 を(0,1,0,0,0,0,0,0,0,0) 等とした2値化する必要があります。
そのため、 該当のスクリプトにおいては、 プログラム末尾に下記のように追記頂く必要があります。
vec1 = ind2vec(double(TTest).',10)
vec2 = ind2vec(double(YTest).',10)
plotconfusion(vec1, vec2)
0 Kommentare
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!