Documentation

plotconfusion

Plot classification confusion matrix

Syntax

  • plotconfusion(targets,outputs)
    example
  • plotconfusion(targets,outputs,name)
  • plotconfusion(targets1,outputs1,name1,targets2,outputs2,name2,...,targetsn,outputsn,namen)

Description

example

plotconfusion(targets,outputs) returns a confusion matrix plot for the target and output data in targets and outputs, respectively.

On the confusion matrix plot, the rows correspond to the predicted class (Output Class), and the columns show the true class (Target Class). The diagonal cells show for how many (and what percentage) of the examples the trained network correctly estimates the classes of observations. That is, it shows what percentage of the true and predicted classes match. The off diagonal cells show where the classifier has made mistakes. The column on the far right of the plot shows the accuracy for each predicted class, while the row at the bottom of the plot shows the accuracy for each true class. The cell in the bottom right of the plot shows the overall accuracy.

plotconfusion(targets,outputs,name) returns a confusion matrix plot with the title starting with name.

plotconfusion(targets1,outputs1,name1,targets2,outputs2,name2,...,targetsn,outputsn,namen) returns several confusion plots in one figure, and prefixes the name arguments to the titles of the appropriate plots.

Examples

collapse all

Plot Confusion Matrix

This example shows how to train a pattern recognition network and plot its accuracy.

Load the sample data.

[x,t] = cancer_dataset;

cancerInputs is a 9x699 matrix defining nine attributes of 699 biopsies. cancerTargets is a 2x966 matrix where each column indicates a correct category with a one in either element 1 (benign) or element 2 (malignant). For more information on this dataset, type help cancer_dataset in the command line.

Create a pattern recognition network and train it using the sample data.

net = patternnet(10);
net = train(net,x,t);

Estimate the cancer status using the trained network, net .

y = net(x);

Plot the confusion matrix.

plotconfusion(t,y)

In this figure, the first two diagonal cells show the number and percentage of correct classifications by the trained network. For example 446 biopsies are correctly classifed as benign. This corresponds to 63.8% of all 699 biopsies. Similarly, 236 cases are correctly classified as malignant. This corresponds to 33.8% of all biopsies.

5 of the malignant biopsies are incorrectly classified as benign and this corresponds to 0.7% of all 699 biopsies in the data. Similarly, 12 of the benign biopsies are incorrectly classified as malignant and this corresponds to 1.7% of all data.

Out of 451 benign predictions, 98.9% are correct and 1.1% are wrong. Out of 248 malignant predictions, 95.2% are correct and 4.8% are wrong. Out of 458 benign cases, 97.4% are correctly predicted as benign and 2.6% are predicted as malignant. Out of 241 malignant cases, 97.9% are correctly classified as malignant and 2.1% are classified as benign.

Overall, 97.6% of the predictions are correct and 2.4% are wrong classifications.

Input Arguments

collapse all

targets — True class labelsN-by-M matrix

True class labels, where N is the number of classes and M is the number of examples. Each column of the matrix must be in the 1-of-N form indicating which class that particular example belongs to. That is, in each column, a single element is 1 to indicate the correct class, and all other elements are 0.

Data Types: single | double

outputs — Class estimates from a neural network that performs classificationN-by-M matrix

Class estimates from a neural network that performs classification, specified as an N-by-M matrix, where N is the number of classes and M is the number of examples. Each column of the matrix can either be in the 1-of-N form indicating which class that particular example belongs to, or can contain the probabilities, where each column sums to 1.

Data Types: single | double

name — Name of the confusion matrixcharacter array

Name of the confusion matrix, specified as a character array. The specified name prefixes the confusion matrix plot title as name Confusion Matrix.

Data Types: char

See Also

Was this topic helpful?