6 marca 2019

Macierz błędów

Macierz błędów pozwala łatwo wizualizować błędy popełniane przez badany klasyfikator. W tym wpisie zakładamy, że istnieją tylko dwa stany, które przewiduje nasz klasyfikator.

Macierz błędów

W postaci prostej mamy tabelę zawierającą tylko 4 pola, w bardziej rozbudowanej dodatkowo sumy dla wierszy i kolumn. Te dodatkowe wartości pozwalają nam łatwiej ocenić czy reprezentacja poszczególnych przypadków jest podobna. Jest to istotne przy klasyfikatorach, które mają za zadanie wykrywać bardzo rzadkie zjawiska wówczas jeśli jeden ze stanów miał silną nad reprezentacje w zbiorze testującym oraz zastosujemy niewłaściwą metrykę do porównywania, to możemy błędnie uznać prymitywny klasyfikator, który zawsze zwraca stałą wartość za najlepszy.

Macierz błędów

Znaczenie i nazewnictwo poszczególnych pół

Macierz błędów

True positive

Model przewidział, że zjawisko wystąpi i miał racje. Zjawisko faktycznie wystąpiło. Projektując model, dążymy do maksymalizacji tej wartości.

X

Przykłady:

  • Test wskazuje chorobę i pacjent życzyliście jest chory
  • Filtr klasyfikuje email jako spam i ma racje, bo to naprawdę jest spam

Inne nazwy:

  • Hit (Trafienie)
  • True discovery

False positive

Błąd polegający na wykryciu zjawiska, które w rzeczywistości nie występuje.

X

Przykłady:

  • Test wskazuje chorobę, a pacjent jest zdrowy.
  • Filtr klasyfikuje email jako spam i jest w błędzie, bo to zwykły email

Inne nazwy:

  • Type 1 Error (Błąd typu pierwszego)
  • False alarm (Fałszywy alarm)
  • False discovery

False negative

X

Błąd polegający na nie wykryciu zjawiska, które występuje.

Przykłady:

  • Test wskazuje, że pacjent jest zdrowy, a pacjent jest chory.
  • Filtr klasyfikuje email jako poprawna wiadomość, a jest to spam.

Inne nazwy:

  • Type 2 Error (Błąd typu drugiego)
  • Miss (Pudło)
  • False omission

True negative

X

Model przewidział, że zjawisko nie wystąpi i miał racje, zjawisko nie wystąpiło. Jest to oczekiwane zachowanie i będziemy dążyć do maksymalizacji tej wartości.

Przykłady:

  • Test nie wykazuje choroby i pacjent życzyliście jest zdrowy
  • Filtr klasyfikuje email jako prawidłową wiadomość i ma racje.

Inne nazwy:

  • Correct rejection (Poprawne odrzucenie)
  • True omission

Porównywanie macierzy błędów. Metryki

Mamy dwa klasyfikatory, sprawdziliśmy ich działanie na naszym zbiorze testowym i uzyskaliśmy macierze błędów. Jak możemy je porównać?

Aby, to zrobić musimy policzyć jeden parametr dla macierzy, który będzie pojedynczą liczbą i porównywać ten parametr. Niestety nie da się jednoznacznie powiedzieć, jaka metryka jest najlepsza. Poniżej przedstawiam kilka stosowanych metryk do porównywania macierzy błędów.

Recall

Parametr użyteczny w ograniczonym zakresie. Mierzymy, ile z faktycznie pozytywnych przypadków udało się zaklasyfikować jako pozytywne. Ten parametr jest wygodny, gdy interesuje nas wysoka wykrywalność i nie przejmujemy się fałszywymi alarmami. Wadą tego parametru jest, że ignoruje połowę wartości. W skrajnym przypadku, jeśli nasz model będzie zawsze zwracał true to parametr osiągnie maksymalną wartość, nawet jeśli model będzie bezużyteczny.

TP
FN

Inne nazwy:

  • sensitivity
  • hit rate
  • true positive rate (TPR)

Precision

Kolejny parametr o ograniczonej użyteczności pozwala ocenić, ile z przypadków przewidzianych jako pozytywne faktycznie jest pozytywnych.

Zastanówmy się nad wadą tego parametru, załóżmy, że mamy model do przewidywania czy osoba na zdjęciu jest pełnoletnia. Możemy stworzyć model, który będzie jako pełnoletnich klasyfikował tylko emerytów, czyli wybierze same łatwe przypadki, wówczas ze wszystkich osób uznanych przez model za pełnoletnie 100% faktycznie będzie pełnoletnie więc parametr Precision będzie miał wartość jeden.

TP FP

Inne nazwy:

  • positive predictive value (PPV)

Specificity

Parametr analogiczny do Recall tyle że mierzy wykrywanie True negative. Obarczony tymi samymi wadami do poprzednie.

FP
TN

Inne nazwy:

  • selectivity
  • true negative rate (TNR)

Miss rate

Parametr mierzy, jak często pomijamy pozytywny przypadek. Dążymy do minimalizacji jego wartości.

FP
FN

Inne nazwy:

  • false negative rate (FNR)

F-measure (F1 Score)

Jak pokazano wcześniej parametry Recall i Precision, są mało użyteczne, jeśli stosowane osobno. F1 Score to średnia harmoniczna tych dwóch parametrów. Pozwala on, na porównywanie ze sobą modeli gdzie jeden ma wysoki poziom Recall przy niskim Precision, a drugi odwrotnie.

TP FP
FN

Accuracy

Parametr uwzględniający wszystkie pola z macierzy jest to stosunek ilości poprawnie przewidzianych wartości do wszystkich wartości. Dobry parametr, jeśli częstotliwość występowania poszczególnych klass jest podobna i jest stała dla porównywanych modeli.

Jeśli przewidywane zjawisko jest bardzo nieprawdopodobne np. test wykrywający rzadką chorobę to model, który zawsze będzie przewidywał negatywnie, może uzyskać wysoką wartość tego parametru.

TP FP
FN TN

Matthews Correlation Coefficient (MCC)

Jest to współczynnik korelacji pomiędzy tym, co przewiduje nasz model a tym, co powinien przewidzieć. Wartości zwracane są z przedziału <-1,1>. Parametr ten pozwala porównywać wyniki, gdy rozmiar klas jest znacząco różny. Bierze on pod uwagę wszystkie pola w przeciwieństwie do podstawowych metryk wspomnianych wcześniej.

TP FP
FN TN

Przykłady metryk

Poniżej obliczono wartości omawianych metryk dla kilku przypadków macierzy.

Macierze

Opis
Macierz 1 Równa reprezentacja obu klas w zbierze testującym, model rozpoznał każdą z klas dla 80% przypadków dla pozostałych się pomylił.
Macierz 2 Równa reprezentacja obu klas, natomiast model silnie preferował odpowiedz pozytywną.
Macierz 3 Niesymetryczny zbiór testujący, 90% przypadków testujących reprezentuje jedną klasę. Model klasyfikuje poprawnie dana klasę z 80% poprawnością.
Macierz 4 Niesymetryczny zbiór testujący, 90% przypadków testujących reprezentuje jedną klasę. Model zawsze przewiduje ze wynik to klasa pozytywna. Ten model jest bez wartości produkcyjnej natomiast dobrze pokazuje jak ostrożnym należy być oceniając model na podstawie tylko pojedynczej metryki
Macierz błędów

Wyniki

Macierz 1 Macierz 2 Macierz 3 Macierz 4
Recall 0.80 0.95 0.80 1.00
Precision 0.80 0.66 0.98 0.91
Specificity 0.80 0.50 0.80 0.00
F-measure 0.80 0.78 0.88 0.95
Accuracy 0.80 0.73 0.80 0.91
MCC 0.60 0.50 0.40 ???

Uwaga

Macierzy 4 pokazuje działanie bardzo słabego predyktora. Mimo tego niektóre wyniki są bardzo wysokie. To pokazuje, jak niebezpieczne jest posługiwanie się pojedynczymi prostymi parametrami. Bardziej złożone takie jak MCC są znacznie bezpieczniejsze w tym zakresie.

Linki