A confusion matrix helps us see how well a model guesses different groups. It shows where the model is right and where it makes mistakes.
Confusion matrix analysis in TensorFlow
tf.math.confusion_matrix(labels, predictions, num_classes=None, weights=None, dtype=tf.dtypes.int32, name=None)
labels: True class labels as a 1D tensor or array.
predictions: Predicted class labels as a 1D tensor or array.
cm = tf.math.confusion_matrix([0, 1, 2, 1], [0, 2, 1, 1])
cm = tf.math.confusion_matrix(labels, predictions, num_classes=3)This code compares true labels and predictions for 3 classes (0, 1, 2). It prints the confusion matrix showing counts of correct and wrong guesses.
import tensorflow as tf # True labels for 6 samples true_labels = [0, 1, 2, 2, 0, 1] # Model predictions for the same samples predictions = [0, 2, 2, 2, 0, 0] # Compute confusion matrix conf_matrix = tf.math.confusion_matrix(true_labels, predictions, num_classes=3) print('Confusion Matrix:') print(conf_matrix.numpy())
The diagonal of the confusion matrix shows correct predictions.
Off-diagonal values show where the model made mistakes.
Use this matrix to calculate accuracy, precision, recall, and other metrics.
A confusion matrix helps visualize model performance by showing correct and wrong predictions.
It is useful for classification problems with multiple classes.
TensorFlow provides a simple function to create this matrix from labels and predictions.
Practice
Solution
Step 1: Understand the purpose of a confusion matrix
A confusion matrix displays how many predictions were correct or wrong for each class in classification.Step 2: Compare options with the definition
Only The number of correct and incorrect predictions for each class correctly describes this purpose; others relate to unrelated model aspects.Final Answer:
The number of correct and incorrect predictions for each class -> Option AQuick Check:
Confusion matrix = correct/wrong counts [OK]
- Confusing confusion matrix with training metrics like loss
- Thinking it shows model parameters
- Assuming it shows training time
Solution
Step 1: Identify TensorFlow functions related to confusion matrix
The function tf.math.confusion_matrix() directly computes the confusion matrix from labels.Step 2: Eliminate unrelated functions
tf.keras.metrics.Accuracy() measures accuracy, tf.data.Dataset.from_tensor_slices() creates datasets, and tf.nn.softmax() applies softmax activation.Final Answer:
tf.math.confusion_matrix() -> Option CQuick Check:
Confusion matrix function = tf.math.confusion_matrix() [OK]
- Using accuracy metric instead of confusion matrix function
- Confusing dataset creation with confusion matrix
- Mixing activation functions with metrics
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())
Solution
Step 1: Count true vs predicted labels for each class
Class 0 true: predicted 0 twice; class 1 true: predicted 2 once; class 2 true: predicted 2 twice.Step 2: Build confusion matrix rows
Row 0: [2 correct (0 predicted as 0), 0 predicted as 1, 0 predicted as 2]; Row 1: [0, 0, 1]; Row 2: [0, 0, 2].Final Answer:
[[2 0 0] [0 0 1] [0 0 2]] -> Option DQuick Check:
Count matches matrix entries [OK]
- Mixing up rows and columns in the matrix
- Counting predicted labels instead of true labels
- Forgetting to count all instances
import tensorflow as tf true = [0, 1, 1, 0] pred = [0, 1, 0] cm = tf.math.confusion_matrix(true, pred) print(cm)
Solution
Step 1: Check input list lengths
True labels list has 4 elements; predicted labels list has 3 elements, causing mismatch.Step 2: Understand function requirements
tf.math.confusion_matrix() requires true and predicted labels to be same length to compare element-wise.Final Answer:
The true and predicted label lists have different lengths -> Option BQuick Check:
Input lengths must match [OK]
- Ignoring length mismatch error
- Assuming function name typo
- Thinking print syntax is wrong in Python 3
[[50 2 3] [ 4 45 1] [ 5 2 40]]Which class has the highest precision, and how do you calculate it from the matrix?
Solution
Step 1: Understand precision calculation
Precision for a class = True Positives (TP) / (TP + False Positives (FP)). TP is diagonal element; FP is sum of column excluding TP.Step 2: Calculate precision for each class
Class 0: TP=50; FP=sum column 0 excluding TP=4+5=9; precision=50/(50+9)=50/59≈0.847. Class 1: TP=45; FP=2+2=4; precision=45/(45+4)=45/49≈0.918. Class 2: TP=40; FP=3+1=4; precision=40/(40+4)=40/44≈0.909.Step 3: Identify highest precision
Class 1 has the highest precision (≈0.918).Final Answer:
Class 1; precision = TP / (TP + FP) = 45 / (45 + 4 + 1) -> Option AQuick Check:
Precision = TP / (TP + FP) [OK]
- Confusing precision with recall
- Using row sums instead of column sums for FP
- Mixing up TP and FP positions
Ready to prove it?
Pass the test and this pattern moves unknown
