How to plot confusion matrix

7 views (last 30 days)
bayoishola20
bayoishola20 on 20 Oct 2014
Commented: bayoishola20 on 4 Nov 2014
I have performed my image segmentation using kmeans but need to get the confusion matrix. My image segmentation matrix for six(6) classes has numbers 1 to 6 in it which is perfect. On getting my trained classes BW_1,BW_2,BW_3,BW_4,BW_5,BW_6 I have in each only one's(1's) and zero's(0's) but need to create a single confusion matrix like in this link http://www.mathworks.com/help/nnet/ref/plotconfusion.html?searchHighlight=confusion%2520matrix

Accepted Answer

Greg Heath
Greg Heath on 20 Oct 2014
The function plotconfusion handles more than 2 classes. Replace the iris_dataset or simplecluster_dataset in the help and doc examples for plotconfusion
[x,t] = iris_dataset;
net = patternnet;
rng('default')
[net tr y e] = train(net,x,t);
NMSE = mse(e)/mean(var(t',1)) %0.0418
R2 = 1-NMSE %0.9582
plotconfusion(t,y);
Find the minimum number of hidden nodes that yields an acceptable result
Hope this helps.
Thank you for formally accepting my answer
Greg
  3 Comments
Greg Heath
Greg Heath on 21 Oct 2014
That command assumes the input and target matrices are combined as in the MATLAB example database
help nndatasets
doc nndatasets
If your data is not formatted that way, then change the command to read the way your data is formatted.
bayoishola20
bayoishola20 on 4 Nov 2014
You said the command assumes that my input & target matrices are combined. please in the case where my target matrix are 6 different matrices and each contain only ones and zeros while the input has 1,2,3,4,5,6. How can I achieve this. Thanks in advance.

Sign in to comment.

More Answers (1)

Star Strider
Star Strider on 20 Oct 2014
Edited: Star Strider on 20 Oct 2014
The Neural Network Toolbox confusion function will only let you plot (2x2) classification results. To plot more classes, use the Statistics Toolbox confusion function.
The crosstab function will give you the chi-squared statistic and the probability.
  7 Comments
Star Strider
Star Strider on 20 Oct 2014
If you have vectors with your known and predicted classes, those are your inputs to your confusion matrix. I got the impression from your Question, specifically ‘My image segmentation matrix for six(6) classes has numbers 1 to 6 in it which is perfect.’ that you already had those and simply wanted to know how to create a confusion matrix for your 6 classes.
bayoishola20
bayoishola20 on 20 Oct 2014
Edited: bayoishola20 on 20 Oct 2014
Exactly! But am I to combine the trained classes(known, with 0's and 1's) so I could have a single matrix like the predicted or use them as they are? If so, please how do I do that?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!