Notatnik techniczny

Macierz błędów

Macierz błędów pozwala łatwo wizualizować błędy popełniane przez badany klasyfikator. W tym wpisie zakładamy ze istnieją tylko dwa stany które próbujemy klasyfikować przez nasz model jednak w ogólnym przypadku jest to wygodna metoda wizualizacji również przy większej liczbie stanów.

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ć ze prymitywny klasyfikator, który zawsze zwraca stałą wartość jest najlepszy.

Macierz błędów

Znaczenie i nazewnictwo poszczególnych pół

Paradoks Simpsona

True positive

Model przewidział ze 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 ze 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ł ze 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 dwie macierze błędów. Jak mamy je porównać?

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

Recall

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

TPR=TPTP+FNTPR = \frac{TP} {TP\;+\;FN}

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 ze mamy model do przewidywania czy osoba na zdjęciu jest pełnoletnia. Teraz mozemy 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 bedzie maił wartość jeden.

PPV=TPTP+FPPPV = \frac{TP} {TP\;+\;FP}

TP FP
 —  —

Inne nazwy:

  • positive predictive value (PPV)

Specificity

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

TNR=TNTN+FPTNR = \frac{TN} {TN\;+\;FP}

 — 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.

FNR=FNFN+FPFNR = \frac{FN} {FN\;+\;FP}

 — 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.

F1=2RecallPrecisionRecall+Precision=2TP2TP+FP+FNF1 = \frac{2\;\cdot\;Recall\;\cdot\;Precision} {Recall\;+\;Precision} = \frac{2\;\cdot\;TP}{2\;\cdot\;TP\;+\;FP\;+\;FN}

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.

Accuracy=TP+TNTP+FP+FN+TNAccuracy = \frac{TP\;+\;TN}{TP\;+\;FP\;+\;FN\;+\;TN}

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.

MCC=TPTNFPFN(TP+FP)(TP+FN)(TN+FP)(TN+FN)MCC = \frac{TP\;\cdot\;TN\;-\;FP\;\cdot\;FN}{\sqrt{(TP\;+\;FP)(TP\;+\;FN)(TN\;+\;FP)(TN\;+\;FN)}}

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 ??? 00\frac{0}{0}

Zwrócicie uwagę jak dobre są niektóre wyniki dla macierzy 4, która to reprezentuje bardzo prymitywny model, 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