We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
← Metrics & Evaluation step 2 of 7
Confusion Matrix
A confusion matrix shows which classes a classifier mixes up. Rows
represent true labels and columns represent predictions. Entry M[i, j]
is the number of examples whose true class is i and predicted class is j.
The diagonal contains correct predictions; off-diagonal entries count errors.
For labels [0, 0, 1] and predictions [0, 1, 1], the matrix is
[[1, 1], [0, 1]]. One class-0 example was correct and one was called
class 1. The only class-1 example was correct.
Summing a row gives the number of true examples of that class. Summing a column gives the number of predictions of that class. All entries together sum to the number of examples.
Your task
Implement confusion_matrix(predictions, labels, num_classes):
predictionsandlabelshave the same 1D shape(N,)and contain class IDs, not score vectors or probabilities.num_classesis a positive integer C. All IDs are whole numbers in[0, C - 1]; the test inputs may store them as floating-point values.- Return a tensor of shape
(C, C)containing counts, without normalization.
Convert IDs to integer indices when needed. For each example k, add one
to M[labels[k], predictions[k]]. Repeated pairs must accumulate counts,
not overwrite them. Keep rows and columns for every declared class, even
if that class never occurs. An empty input returns an all-zero matrix.
A confusion matrix locates patterns of mistakes. It does not by itself tell you whether they come from data, labels, model limitations, or the choice of decision rule.
Understand the ideas behind this exercise. The Problem tab contains the exact implementation requirements.
Count the kinds of mistakes the model makes
Accuracy is the fraction of predictions that are correct. A confusion matrix gives more detail by counting each combination of true and predicted class. Check which axis represents the true class before reading the matrix.
For binary classification:
- A true positive (
TP) is a positive example predicted as positive. - A false positive (
FP) is a negative example predicted as positive. - A false negative (
FN) is a positive example predicted as negative.
Precision, TP / (TP + FP), asks how many predicted positives were correct.
Recall, TP / (TP + FN), asks how many actual positives were found.
For TP = 6, FP = 2, and FN = 4, precision is 6/8 = 0.75 and recall is
6/10 = 0.6. F1 combines them using their harmonic mean,
2 * precision * recall / (precision + recall), which is about 0.667 here.
A model can have high accuracy by always predicting the majority class while missing every rare positive. For multiclass F1, macro averaging gives each class equal weight. Micro averaging combines the counts first. Follow the specified policy when a denominator is zero.
AUC measures ranking
ROC-AUC compares positive and negative examples by their scores. It is the probability that a randomly chosen positive receives a higher score than a randomly chosen negative, with ties usually counted as half a success.
For positive scores [0.9, 0.5] and negative scores [0.4, 0.1], every positive
outranks every negative, so AUC is 1. Both classes must be present for this
comparison to be meaningful. Handle equal scores explicitly when implementing it.
Calibration measures whether probabilities are trustworthy
Among 100 examples each assigned positive-class probability 0.8, about 80
positives would support calibration for that group. Expected calibration error
(ECE) estimates this agreement by grouping predictions into bins and weighting
each bin's gap by its number of examples. Bin boundaries and empty-bin handling
are part of the definition.
Binary probability calibration compares positive-class probabilities with the frequency of positive labels. Top-label confidence calibration instead compares the probability of the predicted class with how often that prediction is correct. These are different measurements; use the one requested by the exercise.
AUC and calibration answer different questions. A model can rank all positives above all negatives while assigning probabilities that are much too confident.
Your code, saved here
Sign in to access your accepted solutions and saved draft history. You can keep reading the lesson without an account.
Sign in to your accountStuck?
JAX reference solution
Sign in to track your attempts toward unlocking the reference solution.