ROC suplement

Transkrypt

ROC suplement
ROC
www.michalbereta.pl
ROC
Rozważmy automatyczny system kontrolujący osoby
wchodzące do budynku na podstawie zdjęcia ich
twarzy.
Tylko osoby uprawnione (znajdujące się w bazie)
mogą wejść, po zadeklarowaniu swojej tożsamości.
Oznacza to, że osoba, która jest bazie, ale fałszywie
deklaruje swoją tożsamość, również powinna
spowodować alarm.
ROC
Osoby w bazie
(potencjalnie kilka zdjęć
na osobę)
Pan X
Pani Y
Pan Z
ROC
Zdjęcia z bazy
Nowe zdjęcie
Uczciwy (przypadek negatywy)
"Jestem Pan X"
ROC
Zdjęcia z bazy
Nowe zdjęcie
"Jestem Pan X"
Oszust (przypadek pozytywny)
Osoba z bazy
ROC
Zdjęcia z bazy
Nowe zdjęcie
"Jestem Pan X"
Oszust (przypadek pozytywny)
Osoba spoza bazy
ROC
Zdjęcia z bazy
X1=[x11,x12,...x1p]
X2=[x21,x22,...x2p]
X3=[x31,x32,...x3p]
Nowe zdjęcie
"Jestem Pan X"
X4=[x41,x42,...x4p]
Wektory atrybutów
opisujących zdjęcia
ROC
Liczone są odległości Euklidesa (lub inne miary
podobieństwa/odległości).
d(X1, X4)
d(x2, X4)
d(X3, X4)
Wybierana jest najmniejsza z nich d.
Jest to stopień podobieństwa pomiędzy nowym zdjęciem a
najbardziej podobnym zdjęciem z bazy (spośród zdjęć osoby,
za którą nowa postać się podaje).
ROC
Jeśli d jest “wystarczająco” małe (odległość
między wektorami atrybutów jest mała), wtedy
uznawane jest , że zdjęcia pasują do siebie.
System uznaje, że osoba jest tą, za którą się
podaje.
Czy poprawnie?
ROC
W takich problemach, klasa pozytywna to ta,
którą chcemy wykrywać, zatem w tym
przypadku oszuści.
Uczciwi to klasa przykładów negatywnych
(trochę dziwne ale tak jest, podobnie jak w
testach medycznych - wynik testu pozytywny
oznacza wykrycie przez test choroby - pytanie
tylko czy poprawnie)
ROC
Zatem:
• rzeczywisty oszust wskazany przez system jako oszust przypadek pozytywny poprawnie wykryty, zatem TP - true
positive
• rzeczywisty oszust wskazany przez system jako uczciwy przypadek pozytywny wskazany niepoprawnie jako
negatywny, zatem FN - false negative
• uczciwy uznany przez system jako uczciwy - przypadek
nagatywny, uznany poprawnie za negatywny, zatem TN true negative
• uczciwy uznany przez system jako oszust - negatywny
przypadek uznany niepoprawnie przez system za
pozytywny, zatem FP - false positive
ROC
Nas interesuje wykres TPR vs FPR, tzn, jak rośnie wykrywalność oszustów (TPR
- true positive rate) w zależności od coraz większego poziomu FPR (false
positive rate) czyli fałszywych alarmów, na jaki się godzimy, by podwyższyć
TPR.
Mając taki wykres, ustalamy, że godzimy się maksymalnie na np. 5%
fałszywych alarmów (które uprzykrzają życie uczciwym) i patrzymy czy system
zapewnia nam wtedy satysfakcjonujący poziom wykryć, czyli TPR, czyli
poprawnych zatrzymanych oszustów, np. 99% (co by było dobrym wynikiem).
Ale może tylko 95%? Wtedy patrzymy na wykres i sprawdzamy na jaki poziom
fałszywych alarmów musilibyśmy się zgodzić, by osiągnąć np. 98%. Można w
ten sposob porównać dwa systemy i sprawdzić, który z nich zapewni większe
TPR przy założanym FPR, np. 5%, a który przy FPR=2%.
ROC
P to liczba pozytywnych przypadków więc w
naszym przypadku oszustów,
TP to liczba oszustów wykrytych przez system,
FN to liczba niewykrytych oszustów
ROC
N to liczba przykładów negatywnych więc tych
uczciwie podających swoją tożsamość,
FP to liczba uczciwych uznanych przez system za
oszustów (nieprawidłowo),
TN to liczba uczciwych uznanych przez system za
rzeczywiście uczciwych.
ROC
Wykres ROC tworzy się nie przy ustalonym progu
odległosci Euklidesa, ale poprzez jego zmianę, tak
by po każdej zmianie progu system zmieniał zdanie
o jednym przykładzie.
Dobrze jest więc posortować minimalne odleglości
dla kolejnych przykładów testowych i za kolejne
progi przyjmować średnią z kolejnych dwóch
odległości. Dla każdego progu liczymy TPR oraz FPR i
z tych punktów tworzymy wykres ROC.
ROC
Przykładowo, jeśli mamy przypadki testowe (oszust
- O, uczciwy - U):
[U, O, U, U, O]
i dla nich minimalne odległości dla każdego szukane
osobno to, już po sortowaniu:
[1.1, 1.2, 3.3, 3.5, 4.1]
ROC
Sprawdzamy najpierw próg np. 1, wtedy wszystkie
odległości są ponad i wszyscy są uznani za niepodobnych
do zadeklarownaych tożsamości, wszyscy są zgłoszeni jako
oszuści i mamy 100% wykrywalności oszustów (TPR = 2/2
= 1 == 100%).
Jednocześnie mamy maks fałszywych alarmów, FPR = 3/3
= 1 == 100%).
TPR = 1 jest porządane, ale nie przy FPR=1, bo to oznacza,
że wszystkich wrzucamy do jednego worka jako
oszustów.
ROC
Podwyższamy więc próg do (1.1+1.2)/2
Teraz łatwiej będzie kogość zaakceptować jako
uczciwego (wystarczy, że wykaże się mniejszym
podobieństwem).
Teraz przykład 1.1 jest uznany za uczciwego i jako że
jest to rzeczywiście uczciwy, to FPR=1/2 spada (więc
dobrze) a wykrywalność TPR dalej jest na 100%.
ROC
Jeśli kolejny próg to (1.2+3.3)/2 wtedy przykład
1.2 (oszust) zostanie uznany za uczciwego
(nieszłusznie) zatem mamy spadek TPR przy
takim samym FPR.
ROC
W ten sposob ROC jest tworzony od górnego
prawego rogu do lewego dolnego.
Jeśli dla kogoś bardziej naturalne wydaje się
konstruować go od punktu (0,0) to wystarczy
posortować wartości malejąco. Końcowy wykres
bedzie taki sam.
ROC
Co jeśli wśród danych odpowiedzi testowych są
te same wartości, ale dla przykładów z różnych
klas?
Odp. Wykorzystać można jedno z możliwych
podejść: optymistyczne, pesymistyczne lub
mieszane.
ROC
Można narysować wykres ROC na podstawie
odpowiedzi klasyfikatora dla zbioru testowego
bez sterowania jego parametrami (typu próg
decyzyjny), nawet dla odpowiedzi 0 (pierwsza
klasa) 1 (druga klasa).
ROC
Prediction
Class
0.8
0.8
0.8
0.4
0.4
0.4
0.4
0.4
0.3
0.1
0.1
0.8
0.8
0.4
0.4
0.4
0.2
0.1
0.1
0.1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
Odpowiedzi przykładowego klasyfikatora.
Można na ich podstawie analizować jakość
klasyfikatora na wykresie ROC
ROC
Prediction
Class
0.8
0.8
0.8
0.4
0.4
0.4
0.4
0.4
0.3
0.1
0.1
0.8
0.8
0.4
0.4
0.4
0.2
0.1
0.1
0.1
Prediction
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
Class
0.8
0.8
0.8
0.8
0.8
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.3
0.2
0.1
0.1
0.1
0.1
0.1
Sortowanie
Prediction
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
Class
0.8
0.8
0.8
0.8
0.8
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.3
0.2
0.1
0.1
0.1
0.1
0.1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
Różne ROC dla różnych
rodzajów sortowania.
Który wybrać?
ROC
Sortowanie
•Optymistyczne
–Spośród przykładów o tych samych wartościach
predykcji, najpierw brane są przykłady z poprawną
predykcją
•Pesymistyczne
– (…) najpierw brane są przykłady z błędna predykcją
•Mieszane
–(…) przykłady brane są na przemian, z poprawną i
niepoprawną predykcją
ROC
Optymistyczne
AUC = 0.7272
Prediction
Class
0.8
0.8
0.8
0.8
0.8
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.3
0.2
0.1
0.1
0.1
0.1
0.1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
ROC
ROC
Pesymistyczne
AUC = 0.4545
Prediction
Class
0.8
0.8
0.8
0.8
0.8
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.3
0.2
0.1
0.1
0.1
0.1
0.1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
ROC
ROC
Mieszane
AUC = 0.5959
ROC
ROC
ROC
Podobną analizę można wykonać dostając jedynie 0 lub 1 jako predykcję klasyfikatora.
Prediction
Class
0.8
0.8
0.8
0.8
0.8
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.4
0.3
0.2
0.1
0.1
0.1
0.1
0.1
Prediction
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
Class
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
Np. ostra decyzja przy progu 0.5
ROC
Podczas tworzenia wykresu ROC przemieszczamy się co jeden przykład, i mimo że
wartość progu decyzyjnego się nie zmienia, przeliczamy TPR oraz FPR otrzymując nowy
punkt na wykresie.
Prediction
Class
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
Prediction
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
Class
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
Optymistycznie
Prediction
Class
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Pesymistycznie

Podobne dokumenty