Macierz pomyłek

Tabela podsumowująca wyniki klasyfikatora w czterech kategoriach: trafienia i pomyłki dla klas pozytywnej i negatywnej. Podstawa do liczenia precyzji i czułości.

Macierz pomyłek (ang. confusion matrix) to tabela, która pokazuje, jak dobrze radzi sobie Twój klasyfikator, porównując jego przewidywania z prawdą. W najprostszym wariancie binarnym (klasa pozytywna i negatywna) dzieli wszystkie predykcje na cztery koszyki: TP (true positive — trafione pozytywne), TN (true negative — trafione negatywne), FP (false positive — fałszywy alarm) i FN (false negative — przeoczenie). Innymi słowy: w wierszach masz klasę rzeczywistą, w kolumnach to, co model strzelił, a na przekątnej siedzą wszystkie poprawne odpowiedzi.

Do czego to służy

Samo accuracy (odsetek poprawnych odpowiedzi) bywa zdradliwe. Jeśli 99% maili to nie-spam, model, który zawsze mówi „to nie spam”, ma 99% trafności — i jest kompletnie bezużyteczny. Macierz pomyłek pokazuje, jak model się myli, a nie tylko ile razy. Z czterech liczb policzysz najważniejsze metryki: precyzję (TP / (TP + FP) — ile z oznaczonych jako pozytywne faktycznie takie było) oraz recall, czyli czułość (TP / (TP + FN) — ile pozytywnych w ogóle złapałeś). Połączenie obu daje F1-score.

Przykład z praktyki

W Pythonie wystarczy scikit-learn. Po wytrenowaniu modelu robisz:

  • from sklearn.metrics import confusion_matrix, classification_report
  • confusion_matrix(y_true, y_pred) — zwróci macierz 2×2 (lub NxN dla wielu klas),
  • print(classification_report(y_true, y_pred)) — wypluje precyzję, recall i F1 per klasa.

Wyobraź sobie detektor oszustw płatniczych. Tu FN boli najbardziej — przepuszczona transakcja oszukańcza to realna strata pieniędzy, więc gonisz wysoki recall, nawet kosztem kilku fałszywych alarmów. W filtrze spamu odwrotnie: FP (ważny mail w koszu) jest gorszy niż FN, więc cenisz precyzję.

Częste błędy i pułapki

  • Mylenie orientacji tabeli. Nie ma jednego standardu — sklearn daje wiersze = prawda, ale część bibliotek robi odwrotnie. Zawsze sprawdź osie, zanim zinterpretujesz liczby.
  • Patrzenie tylko na accuracy przy niezbalansowanych klasach. Klasyczna pułapka opisana wyżej.
  • Mylenie FP z FN. Zapamiętaj: drugie słowo mówi, co model przewidział, pierwsze — czy się pomylił. „False positive” = błędnie strzelił pozytyw.

Pojęcia powiązane: precyzja, recall (czułość), specyficzność, F1-score, krzywa ROC i AUC, próg decyzyjny (threshold), accuracy, klasyfikacja binarna i wieloklasowa.