How to Read Confusion Matrix for Multi-Class Classification

April, 2024
Background
In my earlier tutorial, I have discussed the confusion matrix and its significance in understanding performance metrics for a machine learning model applied to a given dataset.
Here is a recap of a confusion matrix for binary classification.

As the name suggests, binary classification results in a dichotomous outcome, such as 'yes' or 'no', 'present' or 'absent'. If the actual and predicted values coincide, the result is categorized as either a True Positive or a True Negative, depending on the presence or absence of the variable. Conversely, if the actual and predicted values do not match, the outcome is categorized as either a False Positive or a False Negative.
However, in real-world applications, we frequently encounter multiclass systems that offer a broader range of possible outcomes.
Let’s discuss how to read the confusion matrix accurately in these more complex scenarios.
Interpretation of a Confusion Matrix for a Multi-class Classification
Let me take an example of a confusion matrix generated from a dataset capturing the corrosion properties of 150 metals and alloys. The snapshot of the dataset is displayed below for reference.The output variable,y (corrosion resistance) column has three outcomes: ‘Poor ’, ‘Fair’, and ‘Excellent’. The remaining columns are input variables (Xs).

The confusion matrix and the encoded categories are displayed below:
Let us start reading the above confusion matrix in steps.
- For a multi-class system like above, we need to read the confusion matrix for each category and label the outcomes of the predictions in each cell of the matrix accordingly.
- To analyze the performance of a multi-class classifier using the one-vs-all (OvA) approach, you treat each class independently and consider all other classes collectively as the negative class. Here’s how you can transform a confusion matrix for each category—Poor, Fair, and Excellent—into a binary format.


CATEGORY: 'Poor'
The confusion matrix for this category is shown below:

- We need to consider ONLY one class/ category ‘poor’and the remaining classes/ categories as ‘NOT poor’.
- Start reading the matrix first row-wise, and then column-wise as shown below:
- Cell (1, 1): Actual class and predicted class: ‘POOR’ which means True Positive.
- Cell (1, 2): Actual class categorized as ‘ Poor’; while the predicted class is ‘NOT poor’. Therfore it is False Negative.
- Cell (1, 3): Actual class categorized as ‘ Poor’; while the predicted class is ‘NOT poor’. Therfore it is also False Negative.
- Cell (1,1): Actual class and predicted class: ‘POOR’ which means True Positive.
- Cell (2, 1): Actual class categorized as ‘ NOT Poor’; while the predicted class is ‘ Poor’. Therfore it is False Positive.
- Cell (3, 1): Actual class categorized as ‘ NOT Poor’; while the predicted class is ‘NOT Poor’. Therfore False Positive.
- For a binary classification: Accuracy is calculated in terms of number of correct classifications for both positives and negatives. $$ Accuracy = {True\ positives\ (TP)+True\ Negatives\ (TN)\over All\ predictions(TP+TN+FP+FN)}$$
- For a multiclass classification, accuracy is the the fraction of all correct predictions/ classifications (basically all true positives). $$ Accuracy = {Correct\ predictions \over All\ predictions}$$
Row-wise Reading:
Coulmn-wise Reading
The remaining cells in the matrix are designated as 'True Negative' since both the actual and predicted class belong to the negative class 'NOT Poor'.
In a similar way, we can interpret the confusion matrices (shown below) for the categories 'Fair' and 'Excellent'.


Now that we are clear with the interpretation of a multi-class confusion matrix, let's dive into calculating the 'accuracy' score, which tells us how well our model is performing.
Accuracy and Confusion Matrix