Introduction
The confusion matrix is one of the most confusing topics in machine learning. In this article, we going to learn everything about the confusion matrix-like what is a confusion matrix, why do we need a confusion matrix, and how to use the confusion matrix, so let's start with why we need a confusion matrix?
Why do we need a confusion matrix?
Suppose we have a problem in identifying the square and circle so we need to design a classifier that takes input as an image and identifies that in the image, there are how many shapes are circle and how many shapes are square. Suppose you successfully designed that classifier.
Figure Classifier
So if we want to check the accuracy of the designed classifier or wants to evaluate the classifier and how accurate result are produced by the classifier we need a confusion matrix.
Figure-Need for confusion Matrix
Here we got the confusion matrix. Sonfusion matrix is a matrix that helps to check the model's accuracy, by giving different conditions to the Model and taking back the response from the model, and checking how accurate results are being processed by the model or classifier.
What is the confusion matrix?
Figure-Confusion matrix
So confusion matrix is an NXN matrix that helps in evaluating a classifier based on the number of times the classifier guesses the actual result that was desired or confused. Before I start to explain in detail I want to introduce you to these terms that are being used in the confusion matrix
- Actual values
- Predicted values
Actual values
Let's take an example to understand actual values. Suppose we have a classifier that predicts color, and we have a red ball as input. Our classifier can guess whether it is a blue or red ball but the actual color of the ball is red. The red color is an actual value. In the case of a classifier if the classifier predicts some result, then the result could be true or false but the actual value of the data is always correct. The prediction could be correct or incorrect.
Predicted values
Predicted values are predicted outputs or predictions done by the classifier. Let's take an example to understand the concept of the predicted Values. Suppose you are going to the office and you assume, that after 10 minutes you will be in your office. The amount of time that you predicted is a predicted value. In the case of a classifier when it produces some output the output values are the predicted value, whether it is right or wrong.
Now let's focus on other terms used in the confusion matrix
- True-Negative
- True-Positive
- False-Negative
- False-Positive
True-Negative
True negative contains the data that is wrong like in a shapes collection circles are not square. Suppose we created a classifier to identify the squares. So in the collection, all the circles are not square. It's true that squares are not a circle but the response is negative that is why it's true negative.
True-Positive
True positive means that the values are truly positive. Let's take our old example in a collection of shapes. If we want to identify the squares and we get a shape to identify that is square it means it's true that it is a square and the response is also positive, that is why its true-positive
False-Negative
False-negative means if in the shapes collection there is a shape actually square and the classifier predicts it as circle. It means this prediction is false. Because this shape is actually a square, but the classifier says that it is a circle. So in this condition, the response is also negative. So that is why it's called a false negative.
False-Positive
False-positive means that if in a collection of shapes we get a shape that is a circle, and the classifier says that this shape is a square, in this condition classifier’s prediction is false but its response is positive because the classifier says yes it is a square. So that is why it's called a false positive.
Note
It’s very important to understand true positive, true negative, false positive, and false negative to understand the confusion matrix. If it is not clear then please read it again then we go to the next point.
Let’s calculate the Accuracy, Error Rate, Precision, and Recall. For an example first I want to introduce these terms
Accuracy
Accuracy defines the accuracy of the classifier. To calculate the Accuracy we use this formula
Accuracy=(TP+TN)/ (Total no of prediction )
Here
- TP - stands for True Positive
- TN - stands for True Negative
Error Rate
Error Rate defines the rate of error in a classifier. To calculate the Error Rate we have two ways. If we have the value of accuracy then we can get Error Rate by just using Formula
Error Rate =( 1- Accuracy)
Or
If we don’t have the value of Accuracy then we can another formula
Error Rate =(FP+FN)/ (Total no of prediction )
Here
- FP - stands for False Positive
- FN - stands for False Negative
Both processes give the same result
Precision
We can calculate the precision value by using this formula
Precision =TP/(Predicted yes)
Here
- TP - stands for True Positive
Recall
To calculate Recall value we use this formula
Recall=TP/(Actual yes )
Let's take an example.
Suppose we have a classifier which identifies the shapes in the collection of shapes and this is the performance of the classifier, which is given in this Confusion Matrix, let's evaluate the classifier
Figure-Confusion Matrix Example
Here in this matrix
- Total no of prediction=165
- TP(True Positive)=100
- TN(True Negative)=50
- FN(False Negative)=5
- FP(False Positive)=10
So let's calculate The Accuracy first of the classifier
Accuracy=(TP+TN)/ (Total no of prediction )
Accuracy=(100+50)/165
Accuracy=150/165
Accuracy=0.91
Let's calculate Error Rate of the classifier
Error Rate =( 1- Accuracy)
Error Rate =( 1-0.91)
Error Rate =0.09
Or we can calculate it with another formula that is,
Error Rate =(FP+FN)/ (Total no of prediction )
Error Rate =(10+5)/165
Error Rate =(15)/165
Error Rate =0.09
Let's calculate Precisionvalue of the classifier
Precision =TP/(Predicted yes)
Predicted yes=TP+FP
Precision =100/(100+10)
Precision=100/(110)
Precision =0.90
Let's calculate Recall value of the classifier
Recall=TP/(Actual yes )
Actual yes=TP+FN
Actual yes=100+5
Actual yes=105
Recall=100/(105)
Recall=0.95
Summary
In this article, we have learned about the confusion matrix, and also we are now able to calculate the Recall, Error Rate, Accuracy, and precision. Confusion matrix is a very important matrix to observe the actual performance of the classifier Model based on actual values vs predicted values.