Bird
Raised Fist0
ML Pythonml~20 mins

Confusion matrix in ML Python - ML Experiment: Train & Evaluate

Choose your learning style10 modes available
Experiment - Confusion matrix
Problem:You have trained a simple classifier to recognize two types of fruits: apples and oranges. The model predicts labels on a test set, but you want to understand how well it performs beyond just accuracy.
Current Metrics:Accuracy: 80%
Issue:Accuracy alone does not show which fruit the model confuses more. You need a confusion matrix to see detailed prediction errors.
Your Task
Create and interpret a confusion matrix for the classifier's predictions on the test set to understand the types of errors made.
Use only Python and scikit-learn libraries.
Do not change the model or dataset.
Focus on generating and interpreting the confusion matrix.
Hint 1
Hint 2
Hint 3
Solution
ML Python
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
import matplotlib.pyplot as plt

# True labels for test set (0=apple, 1=orange)
y_true = [0, 1, 0, 0, 1, 1, 0, 1, 0, 1]

# Predicted labels by the model
y_pred = [0, 0, 0, 0, 1, 1, 1, 1, 0, 1]

# Compute confusion matrix
cm = confusion_matrix(y_true, y_pred)

# Display confusion matrix with labels
disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=['Apple', 'Orange'])
disp.plot(cmap=plt.cm.Blues)
plt.title('Confusion Matrix for Fruit Classifier')
plt.show()
Added code to compute confusion matrix using true and predicted labels.
Used ConfusionMatrixDisplay to visualize the matrix with class names.
Displayed the plot to interpret model errors clearly.
Results Interpretation

Before: Accuracy = 80% (only overall correctness)

After: Confusion matrix shows detailed errors:

  • 1 apple misclassified as orange
  • 1 orange misclassified as apple
A confusion matrix helps you see exactly where your model makes mistakes. It shows how many samples of each class are correctly or wrongly predicted, which accuracy alone cannot reveal.
Bonus Experiment
Try creating a confusion matrix for a three-class problem (e.g., apple, orange, banana) and interpret the results.
💡 Hint
Generate or simulate predictions and true labels for three classes, then use the same sklearn functions to compute and display the confusion matrix.

Practice

(1/5)
1.

What does a confusion matrix primarily show in machine learning?

easy
A. The number of correct and incorrect predictions for each class
B. The speed of the model training process
C. The size of the dataset used for training
D. The number of features in the dataset

Solution

  1. Step 1: Understand the purpose of a confusion matrix

    A confusion matrix shows how many times a model predicted each class correctly or incorrectly.
  2. Step 2: Identify what it displays

    It displays counts of true positives, true negatives, false positives, and false negatives for each class.
  3. Final Answer:

    The number of correct and incorrect predictions for each class -> Option A
  4. Quick Check:

    Confusion matrix = correct and incorrect counts [OK]
Hint: Confusion matrix counts correct and wrong guesses per class [OK]
Common Mistakes:
  • Thinking it shows training speed
  • Confusing it with dataset size
  • Assuming it shows feature count
2.

Which of the following is the correct way to represent a confusion matrix for a binary classifier?

[[TP, FP],
 [FN, TN]]
easy
A. true Positives, false Positives in first row; false Negatives, true Negatives in second row
B. true Negatives, false Negatives in first row; false Positives, true Positives in second row
C. false Positives, true Positives in first row; true Negatives, false Negatives in second row
D. false Negatives, true Negatives in first row; true Positives, false Positives in second row

Solution

  1. Step 1: Recall confusion matrix layout for binary classification

    The standard layout is: first row has true Positives (TP) and false Positives (FP), second row has false Negatives (FN) and true Negatives (TN).
  2. Step 2: Match the given matrix to the layout

    The given matrix [[TP, FP], [FN, TN]] matches the standard layout exactly.
  3. Final Answer:

    true Positives, false Positives in first row; false Negatives, true Negatives in second row -> Option A
  4. Quick Check:

    Binary confusion matrix = [[TP, FP], [FN, TN]] [OK]
Hint: Remember TP and FP are in the first row [OK]
Common Mistakes:
  • Swapping rows and columns
  • Confusing FP with FN positions
  • Mixing up TP and TN placement
3.

Given the confusion matrix for a 3-class classifier:

[[5, 2, 0],
 [1, 7, 1],
 [0, 2, 6]]

What is the total number of correct predictions?

medium
A. 22
B. 20
C. 21
D. 18

Solution

  1. Step 1: Identify correct predictions in confusion matrix

    Correct predictions are on the diagonal: 5 (class 1), 7 (class 2), and 6 (class 3).
  2. Step 2: Sum the diagonal values

    5 + 7 + 6 = 18 correct predictions in total.
  3. Final Answer:

    18 -> Option D
  4. Quick Check:

    Sum diagonal = 18 correct predictions [OK]
Hint: Sum diagonal elements for correct predictions [OK]
Common Mistakes:
  • Summing all matrix elements instead of diagonal
  • Adding off-diagonal values by mistake
  • Ignoring one of the diagonal values
4.

Consider this confusion matrix for a binary classifier:

[[50, 10],
 [5, 35]]

There is a mistake in interpreting the false Positives (FP). Which is the correct FP count?

medium
A. 50
B. 5
C. 10
D. 35

Solution

  1. Step 1: Recall FP position in confusion matrix

    In a binary confusion matrix [[TP, FP], [FN, TN]], FP is at position [0][1].
  2. Step 2: Identify FP value in given matrix

    Value at [0][1] is 10, so FP = 10.
  3. Final Answer:

    10 -> Option C
  4. Quick Check:

    FP = matrix[0][1] = 10 [OK]
Hint: FP is always top-right in binary confusion matrix [OK]
Common Mistakes:
  • Confusing FP with FN
  • Taking FP as bottom-left value
  • Mixing FP with TN or TP
5.

A model's confusion matrix for a 3-class problem is:

[[40, 5, 0],
 [3, 30, 7],
 [0, 2, 38]]

Calculate the overall accuracy of the model.

hard
A. 0.82
B. 0.85
C. 0.88
D. 0.90

Solution

  1. Step 1: Calculate total correct predictions

    Sum diagonal: 40 + 30 + 38 = 108 correct predictions.
  2. Step 2: Calculate total predictions

    Sum all elements: (40+5+0) + (3+30+7) + (0+2+38) = 45 + 40 + 40 = 125 total predictions.
  3. Step 3: Compute accuracy

    Accuracy = correct / total = 108 / 125 = 0.864, rounded to 0.86.
  4. Final Answer:

    0.86 -> Option B
  5. Quick Check:

    Accuracy = 108/125 ≈ 0.86 [OK]
Hint: Accuracy = sum diagonal / sum all elements [OK]
Common Mistakes:
  • Using only one class's correct count
  • Forgetting to sum all matrix elements
  • Rounding incorrectly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard