どのようにして、CN​Nの識別結果について​混合行列でプロットす​ることができますか?

7 Ansichten (letzte 30 Tage)
MathWorks Support Team
MathWorks Support Team am 27 Nov. 2017
Neural Network Toolbox で提供される例題「分類用のシンプルな深層学習ネットワークの作成」 において CNNを使って手書き数字の識別例があります。
この例題では、モデル作成後、テスト画像を入力して、モデル出力と教師の精度を単純にパーセンテージであらわしていますが、混合行列でプロットするためにはどのようにすればよいでしょうか?
 

Akzeptierte Antwort

MathWorks Support Team
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)

Weitere Antworten (0)

Tags

Noch keine Tags eingegeben.

Produkte


Version

R2017a

Community Treasure Hunt

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

Start Hunting!