Receiver Operating Characteristic - Krzywa ROC - czyli ocena jakości klasyfikacji (część 7)

Receiver Operating Characteristic - Krzywa ROC - geneza nazwy

Termin "Krzywa ROC" wywodzi się z teorii detekcji sygnałów, której zadaniem jest odróżnienie sygnału będącego informacją (np. sygnały z maszyn / urządzeń elektronicznych, bodźce pochodzące z organizmów żywych) od wzorców przypadkowych nie zawierających informacji (szum, tło, aktywność losowa). Pierwsze wykorzystanie krzywej ROC datuję się na okres II Wojny Światowej. Po ataku na Pearl Harbor w 1941, USA zaczęły poszukiwać lepszej metody analizy sygnałów radarowych w celu zwiększenia wykrywalności Japońskich samolotów.

Receiver Operating Characteristic - Krzywa ROC - definicja

W statystyce matematycznej krzywa ROC jest graficzną reprezentacją efektywności modelu predykcyjnego poprzez wykreślenie charakterystyki jakościowej klasyfikatorów binarnych powstałych z modelu przy zastosowaniu wielu różnych punktów odcięcia. Mówiąc inaczej - każdy punkt krzywej ROC odpowiada innej macierzy błędu (zobacz tutaj) uzyskanej przez modyfikowanie "cut-off point" (zobacz tu). Im więcej różnych punktów odcięcia zbadamy, tym więcej uzyskamy punktów na krzywej ROC. Finalnie na wykres nanosimy TPR (True-Positive Rate - oś pionowa) oraz FPR (False-Positive Rate - oś pozioma).

c - punkt odcięcia

\quad c\mapsto \Big(x(c),y(c)\Big)=\Big(FPR(c),TPR(c)\Big)

Krzywa ROC - Receiver Operating Characteristic

Krzywa ROC, będąc funkcją punktu odcięcia, przedstawia zmienność TPR (miary pokrycia / wychwycenia klasy faktycznie pozytywnej) w zależności od FPR (poziomu błędu popełnianego na klasie faktycznie negatywnej). Jak zawsze chodzi o pewien kompromis, tzn. dobierając "cut-off" chcemy maksymalizować TPR "trzymając w ryzach" błąd FPR. Analiza relacji TPR(FPR) jest niezwykle przydatna, ale najpierw przypomnijmy kilka podstawowych definicji.

Krótkie przypomnienie podstawowych definicji

Macierz błędu

TPR, TNR, PPV, NPV

TPR True-Positive Rate (czyli czułość)

TPR=\frac{TP}{TP+FN}=P(pred=P|fakt=P)=

=P(pred=1|fakt=1)=P(1|1)

FPR False-Positive Rate (czyli 1-specyficzność)

FPR=\frac{FP}{FP+TN}=P(pred=P|fakt=N)=

P(pred=1|fakt=0)=P(1|0)=1-P(0|0)=1-TNR

Interpretacja ROC

ROC - Klasyfikator teoretycznie idealny + Klasyfikator losowy

Klasyfikator teoretycznie idealny reprezentowany jest przez punkt (0,1), natomiast klasyfikatory powstałe z modelu losowego "leżą" na prostej TPR=FPR.

Krzywa ROC - Interpretacja - Receiver Operating Characteristic

 

ROC - Punkt równowagi (czułość = specyficzność)

Punkt równowagi leży na przecięciu ROC z prostą TPR = 1-FPR = TNR i reprezentuje "cut-off" point, dla którego klasyfikator osiąga równowagę czułość = specyficzność.

Krzywa ROC - Punkt równowagi - Receiver Operating Characteristic

 

ROC - Współczynnik Giniego

Współczynnik Giniego to pole powierzani pomiędzy krzywą ROC dla badanego modelu oraz krzywą ROC dla modelu losowego w interpretacji procentowej do wartości 1/2 - czyli pola powierzchni dla klasyfikatora teoretycznie idealnego. Współczynnik Giniego jest doskonałą miarą jakości modelu i może być interpretowany jako % "idealności" danego modelu predykcyjnego.

Krzywa ROC - Współczynnik Giniego - Receiver Operating Characteristic

  • Im większy wskaźnik Giniego tym lepiej
  • Wartość wskaźnika Giniego nie zależy od apriori (teoretycznie), w praktyce trudniej o silny model jeśli apriori jest duże
  • Gini = 100% dla modelu teoretycznie idealnego
  • Gini = 0% dla modelu losowego

 

Pole powierzani pod krzywą ROC - AUC, AUROC

Tym razem wyznaczamy całość pola powierzchni pod wykresem ROC odnosząc wartość do analogicznego pola dla modelu idealnego - w tym przypadku pola kwadratu o boku 1. Interpretacja AUROC (Area Under the ROC) to prawdopodobieństwo, że badany model predykcyjny oceni wyżej (wartość score) losowy element klasy pozytywnej od losowego elementu klasy negatywnej.

Krzywa ROC - AUROC - Receiver Operating Characteristic

  • Im większy wskaźnik AUROC tym lepiej
  • Wartość AUROC nie zależy od apriori (teoretycznie), w praktyce trudniej o silny model jeśli apriori jest duże
  • AUROC = 100% dla modelu teoretycznie idealnego
  • AUROC = 50% dla modelu losowego
  • AUROC = 0% dla modelu idealnego klasy przeciwnej do pozytywnej

 

Ciąg dalszy nastąpi ...

Pozdrowienia,

Mariusz Gromada

Model predykcyjny i punkt odcięcia (cut-off point) - czyli ocena jakości klasyfikacji (część 3)

W poprzednich częściach omówiliśmy sposób tworzenia macierzy błędu oraz podstawowe miary oceny jakości klasyfikacji: czułość (TPR), specyficzność (TNR), precyzję przewidywania pozytywnego (PPV), precyzję przewidywania negatywnego (NPV). Opisane miary określone są dla klasyfikatora binarnego (klasyfikacja pozytywna bądź negatywna), jednak w praktyce najczęściej stosuje się modele predykcyjne z ciągłą zmienną odpowiedzi (np. estymator prawdopodobieństwa skorzystania z produktu, gdzie wynikiem działania modelu jest wartość z przedziału [0, 1] interpretowana właśnie jako wspomniane prawdopodobieństwo określane również skłonnością).

Model predykcyjny

Dla lepszego zrozumienia załóżmy, że analizujemy bazę n-klientów oznaczonych odpowiednio x_1, x_2, \ldots, x_n. Model predykcyjny to np. funkcja (estymator) zwracająca dla każdego klienta właściwe dla niego prawdopodobieństwo zakupienia produktu - oznaczmy więc fakt zakupienia produktu klasą pozytywną "1". Teraz możemy podać bardziej formalne określenie - zatem model predykcyjny to estymator prawdopodobieństwa warunkowego p(1|x_i), że wystąpi zakup produktu (klasa "1"), pod warunkiem, że zaobserwujemy cechy klienta x_i.

p(1| \cdot ) : \{x_1, x_2, \ldots, x_n\} \to [0;1]

x_i\mapsto p(1| x_i ) \in [0;1]

Obserwacja cech klienta, a nie samego klienta, jest tu niezwykle istotna. Mianowicie danego klienta mamy dokładnie jednego, natomiast klientów o tych samych / podobnych cechach (np. miejsce zamieszkania, wiek, itp.) możemy posiadać wielu, co dalej umożliwia wnioskowanie indukcyjne, a w wyniku otrzymanie upragnionego modelu 🙂 .

Segment wysokiej skłonności

Typowo mniejszość klientów charakteryzuje się "wysoką" skłonnością, natomiast "średnia" i "niska" skłonność jest przypisywana do znacznie większej części bazy. Łatwo to uzasadnić - zazwyczaj w określonym okresie czasu produkt kupuje maksymalnie kilka procent bazy klientów. Jeśli model predykcyjny posiada faktyczną wartość predykcyjną, wysokie prawdopodobieństwo przypisze do relatywnie niewielkiej części klientów. Idąc dalej - im lepszy model, tym segment o wysokiej skłonności jest mniejszy i bliższy rozmiarem do oszacowania pochodzącego ze średniej sprzedaży mierzonej dla całej analizowanej bazy klientów (tzw. oszacowanie a-priori).

Model predykcyjny i punkt odcięcia

Punkt odcięcia (cut-off point)

Zadaniem punktu odcięcia jest stworzenie na bazie ciągłej zmiennej odpowiedzi (np. szacowanego prawdopodobieństwa) segmentów (klas) - dla uproszczenia załóżmy, że dwóch (jeden punkt odcięcia). Oznaczmy przez p_0 \in [0;1] punkt rozgraniczający segment wysokiej skłonności od segmentów średniej i niskiej skłonności. Jeśli szacowane prawdopodobieństwo p(1|x_i) \geq p_0 klientowi x_i przypiszemy klasę pozytywną "1", w przeciwnym wypadku klientowi przypisujemy klasę negatywną "0".

W powyższy sposób z "ciągłego" modelu predykcyjnego otrzymaliśmy klasyfikator binarny - co, w zestawieniu z faktycznymi zdarzeniami zakupu, umożliwia utworzenie macierzy błędu i wyznaczenie wszystkich istotnych miar oceny jakości dokonanej klasyfikacji.

Ale jak dobrać punkt odcięcia? O tym w następnej części 🙂

Pozdrowienia,

Mariusz Gromada

Zasięg (TPR - czułość / TNR - specyficzność) i precyzja (PPV / NPV) - czyli ocena jakości klasyfikacji (część 2)

Schemat oceny klasyfikacji

Wpis z dnia 26 października 2015 "Confusion matrix, Macierz błędu, tablica pomyłek - czyli ocena jakości klasyfikacji (część 1)" przedstawia wstęp do macierzy błędu i jej podstawowych zastosowań. Poniżej prezentujemy kolejne miary jakości klasyfikacji oparte na poznanej macierzy błędu. Przypomnijmy kodowanie klas:

  • 1 - Positive
  • 0 - Negative

oraz 4 możliwe wyniki przewidywań:

  • True-Positive (TP - liczba przewidywań prawdziwie pozytywnych);
  • True-Negative (TN - liczba przewidywań prawdziwie negatywnych);
  • False-Positive (FP - liczba przewidywań fałszywie pozytywnych);
  • False-Negative (FN - liczba przewidywań fałszywie negatywnych).

Confusion Matrix

Czułość i specyficzność jako miary "zasięgu"

  • Czułość = TPR = \frac{TP}{TP+FN}True-Positive Rate, miara "zasięgu / pokrycia / dotarcia" wskazująca w jakim procencie klasa faktycznie pozytywna została pokryta przewidywaniem pozytywnym (np. procent osób chorych, dla których test diagnostyczny wskazuje wynik pozytywny). TPR zapisujemy również jako

TPR = P( pred = P | fakt = P ) = P( pred = 1 | fakt = 1)  = P( 1 | 1 )

  • Specyficzność = TNR = \frac{TN}{TN+FP}True-Negative Rate, miara "zasięgu / pokrycia / dotarcia" wskazująca w jakim procencie klasa faktycznie negatywna została pokryta przewidywaniem negatywnym (np. procent osób zdrowych, dla których test diagnostyczny wskazuje wynik negatywny). TNR zapisujemy również jako

TNR = P( pred = N | fakt = N ) = P( pred = 0 | fakt = 0)  = P( 0 | 0 )

PPV i NPV jako miary precyzji

  • Precyzja przewidywania pozytywnego = PPV \frac{TP}{TP+FP} - Positive Predictive Value, miara precyzji wskazująca z jaką pewnością możemy ufać przewidywaniom pozytywnym, tzn. w jakim procencie przewidywania pozytywne potwierdzają się stanem faktycznie pozytywnym (np. procent osób z pozytywnym wynikiem testu medycznego, u których następnie potwierdzono diagnozę). PPV można zapisać również jako

PPV = P( fakt = P | pred = P) = P( fakt = 1 | pred = 1 )

  • Precyzja przewidywania negatywnego = NPV \frac{TN}{TN+FN} - Negative Predictive Value, miara precyzji wskazująca z jaką pewnością możemy ufać przewidywaniom negatywnym, tzn. w jakim procencie przewidywania negatywne potwierdzają się stanem faktycznie negatywnym (np. procent osób z negatywnym wynikiem testu medycznego, u których następnie wykluczono chorobę). NPV można zapisać również jako

NPV = P( fakt = N | pred = N) = P( fakt = 0 | pred = 0 )

Miary zasięgu i precyzji na schemacie macierzy błędu

Czułość, specyficzność oraz precyzja klasyfikacji

 

Miary zasięgu i precyzji na schemacie błędu klasyfikacyjnego

Czułość, specyficzność oraz precyzja klasyfikacji

Zależność pomiędzy miarami jakości klasyfikacji

  • Czułość (TPR) vs Specyficzność (TNR) - teoretycznie miary niezależne, co dobrze obrazują powyższe schematy. W praktyce jednak zwiększanie czułości prowadzi często do zmniejszenia specyficzności.
  • PPV i NPV  vs Czułość (TPR) vs Specyficzność (TNR) - korzystając z twierdzenia Bayesa można łatwo wyznaczyć zależność pomiędzy miarami precyzji i miarami zasięgu

\quad

{\small PPV=P(fakt=1|pred=1)=}

{\tiny=\frac{ P(fakt = 1) \cdot P(pred = 1 | fakt = 1) }{ P( fakt = 1)\cdot P( pred = 1 | fakt = 1) +P(fakt = 0) \cdot P(pred = 1 | fakt = 0)}=}

{\small=\frac{ P(1) \cdot P(1 |1) }{ P(1)\cdot P(1|1) +P(0) \cdot P(1|0)}=}

{\small=\frac{ P(1) \cdot P(1 |1) }{ P(1)\cdot P(1|1) +P(0) \cdot \big(1-P(0|0)\big)}=}

{\small=\frac{ P(1) \cdot TPR}{ P(1)\cdot TPR+P(0) \cdot \big(1-TNR\big)}=}

\quad

{\small NPV=P(fakt=0|pred=0)}

{\tiny=\frac{ P(fakt = 0) \cdot P(pred = 0 | fakt = 0) }{ P( fakt = 0)\cdot P( pred = 0 | fakt = 0) +P(fakt = 1) \cdot P(pred = 0 | fakt = 1)}=}

{\small=\frac{ P(0) \cdot P(0|0) }{ P(0)\cdot P(0|0) +P(1) \cdot P(0|1)}=}

{\small=\frac{ P(0) \cdot P(0 |0) }{ P(0)\cdot P(0|0) +P(1) \cdot \big(1-P(1|1)\big)}=}

{\small=\frac{ P(0) \cdot TNR}{ P(0)\cdot TNR+P(1) \cdot \big(1-TPR\big)}}

\quad

  • PPV vs NPV - miary mocno od siebie zależą, np. zwiększając frakcję TP zmniejszamy frakcję FN, lub zmniejszając frakcję FP zwiększamy frakcję TN.

Ciąg dalszy nastąpi 🙂

Pozdrowienia,

Mariusz Gromada

 

Confusion matrix, Macierz błędu, tablica / macierz pomyłek - czyli ocena jakości klasyfikacji (część 1)

Macierz pomyłek

Macierz pomyłek i klasyfikacja binarna

Macierz błędu jest podstawowym narzędziem stosowanym do oceny jakości klasyfikacji. Poniżej rozważymy przypadek klasyfikacji binarnej (dwie klasy).
Kodowanie klas:

  • 1 - Positive (np.: fakt skorzystania z produktu przez Klienta, pacjent z potwierdzoną chorobą, pacjentka z potwierdzoną ciążą)
  • 0 - Negative (np.: fakt nieskorzystania z produktu przez Klienta, pacjent z wykluczoną chorobą, pacjentka z wykluczoną ciążą)

Możliwe wyniki klasyfikacji

Macierz błędu powstaje z przecięcia klasy prognozowanej i klasy faktycznie zaobserwowanej, mamy zatem 4 przypadki (2 dla zgodności i 2 dla niezgodności prognozy ze stanem faktycznym).

  • True-Positive (TP - prawdziwie pozytywna): przewidywanie pozytywne, faktycznie zaobserwowana klasa pozytywna (np. pozytywny wynik testu ciążowego i ciąża potwierdzona)
  • True-Negative (TN - prawdziwie negatywna): przewidywanie negatywne, faktycznie zaobserwowana klasa negatywna (np. negatywny wynik testu ciążowego i brak ciąży)
  • False-Positive (FP - fałszywie pozytywna): przewidywanie pozytywne, faktycznie zaobserwowana klasa negatywna (np. pozytywny wynik testu ciążowego, jednak faktyczny brak ciąży)
  • False-Negative (FN - fałszywie negatywna): przewidywanie negatywne, faktycznie zaobserwowana klasa pozytywna (np. negatywny wynik testu ciążowego, jednak ciąża potwierdzona)
Confusion Matrix
Stan faktyczny
P N
Przewidywanie P TP
True-Positive
FP
False-Positive
N FN
False-Negative
TN
True-Negative

Przykład - do grupy 2000 osób skierowano komunikację marketingową zachęcającą do skorzystania z produktu. Spośród 2000 osób produkt zakupiło 600. Grupę 2000 podzielono losowo na dwie równoliczne części, każda po 1000 osób (w tym w każdej po 300 klientów, którzy skorzystali z produktu). Pierwszej grupie przydzielono rolę "danych uczących", zaś drugiej rolę "danych testowych".  Wykorzystując dane uczące, dostępne charakterystyki klientów oraz informacje o fakcie zakupienia produktu (tzw. target), przygotowano (wytrenowano / nauczono) klasyfikator umożliwiający przewidywanie czy dany klient skorzysta z produktu. Oceny jakości klasyfikatora dokonano przy wykorzystaniu danych testowych (tzn. danych, które nie były używane w procesie uczenia). Wyniki oceny zaprezentowano w postaci poniższej macierzy błędów.

 

Confusion Matrix dla powyższego przykładu
Stan faktyczny
P N
Przewidywanie P 250
True-Positive
100
False-Positive
N 50
False-Negative
600
True-Negative

Wnioski:

  • TP + FN + TN + FP = 250 + 50 + 600 + 100 = 1000 - liczba klientów (baza, na której dokonano oceny)
  • P = TP + FN = 250 + 50 = 300 - liczba klientów, którzy kupili produkt
  • N = TN + FP = 600 + 100 = 700 - liczba klientów, którzy nie skorzystali z produktu
  • TP + TN = 250 + 600 = 850 - liczba poprawnych klasyfikacji
  • FP + FN = 100 + 50 = 150 - liczba błędnych klasyfikacji
  • ACC = (TP + TN) / (P + N) = 850 / 1000 = 85% - jakość klasyfikacji
  • ERR = (FP + FN) / (P + N) = 150 / 1000 = 15%poziom błędu

W kolejnych częściach przyjrzymy się innym miarom jakości klasyfikacji, które powstają z macierzy błędów.

Pozdrowienia,

Mariusz Gromada