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ążą)
  • 0Negative (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