A confusion matrix helps us see how well a model is doing by showing where it gets things right or wrong.
Confusion matrix visualization in TensorFlow
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
TensorFlow
import tensorflow as tf import matplotlib.pyplot as plt import numpy as np cm = tf.math.confusion_matrix(labels, predictions) plt.imshow(cm, cmap='Blues') plt.colorbar() plt.xlabel('Predicted') plt.ylabel('True') plt.title('Confusion Matrix') plt.show()
labels are the true class values.
predictions are the model's predicted class values.
Examples
TensorFlow
labels = [0, 1, 2, 2, 0] predictions = [0, 2, 1, 2, 0] cm = tf.math.confusion_matrix(labels, predictions)
TensorFlow
plt.imshow(cm, cmap='Greens') plt.colorbar() plt.xlabel('Predicted') plt.ylabel('True') plt.title('Confusion Matrix') plt.show()
Sample Model
This program calculates the confusion matrix from true labels and predictions, prints it, and then shows it as a colored grid.
TensorFlow
import tensorflow as tf import matplotlib.pyplot as plt import numpy as np # True labels for 5 samples labels = [0, 1, 2, 2, 0] # Model predictions for the same samples predictions = [0, 2, 1, 2, 0] # Compute confusion matrix cm = tf.math.confusion_matrix(labels, predictions) print('Confusion Matrix:') print(cm.numpy()) # Plot confusion matrix plt.imshow(cm, cmap='Blues') plt.colorbar() plt.xlabel('Predicted') plt.ylabel('True') plt.title('Confusion Matrix') plt.show()
Important Notes
The confusion matrix shape depends on the number of classes.
Diagonal values show correct predictions; off-diagonal show mistakes.
Use color maps to make the matrix easier to read visually.
Summary
A confusion matrix shows how many times each class was predicted correctly or wrongly.
It helps understand model errors beyond just accuracy.
TensorFlow's tf.math.confusion_matrix makes it easy to create this matrix.
Practice
1. What does a confusion matrix primarily show in machine learning?
easy
Solution
Step 1: Understand the purpose of a confusion matrix
A confusion matrix is a table used to describe the performance of a classification model by showing correct and incorrect predictions for each class.Step 2: Match the description to the options
The description 'How many times each class was predicted correctly or wrongly' matches the purpose of a confusion matrix.Final Answer:
How many times each class was predicted correctly or wrongly -> Option DQuick Check:
Confusion matrix = correct and wrong predictions [OK]
Hint: Confusion matrix counts correct and wrong predictions per class [OK]
Common Mistakes:
- Confusing confusion matrix with training speed
- Thinking it shows model architecture details
- Assuming it shows dataset size
2. Which TensorFlow function is used to create a confusion matrix from true and predicted labels?
easy
Solution
Step 1: Identify TensorFlow functions related to confusion matrix
The function to create a confusion matrix is specifically designed to compare true and predicted labels.Step 2: Match the function to the options
tf.math.confusion_matrix is the correct TensorFlow function for this purpose, while others relate to layers, datasets, or image processing.Final Answer:
tf.math.confusion_matrix -> Option CQuick Check:
Confusion matrix function = tf.math.confusion_matrix [OK]
Hint: Use tf.math.confusion_matrix for confusion matrix in TensorFlow [OK]
Common Mistakes:
- Choosing layer or dataset functions instead
- Confusing with image processing functions
- Using non-existent TensorFlow functions
3. What is the output of this code snippet?
import tensorflow as tf true_labels = [0, 1, 2, 2, 0] pred_labels = [0, 2, 2, 2, 0] cm = tf.math.confusion_matrix(true_labels, pred_labels) print(cm.numpy())
medium
Solution
Step 1: Count true vs predicted labels
For class 0: true labels are at positions 0 and 4, predicted also 0 both times -> 2 correct.
For class 1: true label at position 1, predicted is 2 -> 0 correct, 1 predicted as 2.
For class 2: true labels at positions 2 and 3, predicted both 2 -> 2 correct.Step 2: Build confusion matrix rows
Row 0 (true 0): predicted 0 twice -> [2,0,0]
Row 1 (true 1): predicted 2 once -> [0,0,1]
Row 2 (true 2): predicted 2 twice -> [0,0,2]Final Answer:
[[2 0 0] [0 0 1] [0 0 2]] -> Option AQuick Check:
Count true vs predicted labels = [[2 0 0] [0 0 1] [0 0 2]] [OK]
Hint: Count true-predicted pairs per class row-wise [OK]
Common Mistakes:
- Mixing up true and predicted label order
- Counting predicted labels as rows
- Miscounting class occurrences
4. Identify the error in this TensorFlow code for confusion matrix visualization:
import tensorflow as tf true_labels = [0, 1, 1, 0] pred_labels = [0, 1, 0, 0] cm = tf.math.confusion_matrix(true_labels, pred_labels, num_classes=1) print(cm.numpy())
medium
Solution
Step 1: Check the number of classes in labels
True and predicted labels only contain 0 and 1, so there are 2 classes total.Step 2: Verify num_classes argument
Setting num_classes=1 is incorrect because labels include 1, which is not in [0, 1), causing a ValueError (labels out of range).Final Answer:
num_classes should be 2, not 1 -> Option BQuick Check:
num_classes must match actual classes = 2 [OK]
Hint: Set num_classes to actual number of classes in labels [OK]
Common Mistakes:
- Using wrong num_classes value
- Thinking lists are invalid inputs
- Misunderstanding print method for tensors
5. You want to visualize a confusion matrix as a heatmap using TensorFlow and Matplotlib. Which code snippet correctly creates and displays the heatmap?
hard
Solution
Step 1: Generate confusion matrix using TensorFlow
tf.math.confusion_matrix(true, pred) correctly creates the confusion matrix tensor.Step 2: Visualize matrix using Matplotlib heatmap
plt.imshow with cmap='Blues' displays the matrix as a heatmap, plt.colorbar adds a color scale, and plt.show() renders the plot.Final Answer:
Code snippet B correctly creates and displays the heatmap -> Option AQuick Check:
Use tf.math.confusion_matrix + plt.imshow + plt.colorbar [OK]
Hint: Use plt.imshow with cmap and colorbar for heatmap [OK]
Common Mistakes:
- Using tf.keras.metrics.ConfusionMatrix (does not exist)
- Plotting confusion matrix with plt.plot or plt.bar
- Forgetting to add colorbar for scale
