Jämföra och optimera ROC-kurvor
Med ROC-kurvor (Receiver Operator Characteristic) kan vi jämföra modeller med varandra och finjustera vår valda modell. Låt oss diskutera hur och varför dessa görs.
Justera en modell
Den mest uppenbara användningen för en ROC-kurva är att välja ett beslutströskelvärde som ger bästa prestanda. Kom ihåg att våra modeller ger oss sannolikheter, till exempel 65 % chans att exemplet är en vandrare. Beslutströskelvärdet är den punkt över vilken ett exempel tilldelas true (vandrare) eller under vilken det tilldelas false
(träd). Om vårt beslutströskelvärde var 50 % skulle 65 % tilldelas till "true" (vandrare). Om vårt beslutströskelvärde var 70 % skulle sannolikheten på 65 % dock vara för liten och tilldelas till "false" (träd).
Vi har sett i föregående övning att när vi skapar en ROC-kurva ändrar vi bara beslutströskeln och utvärderar hur väl modellen fungerar. När vi gör det kan vi hitta tröskelvärdet som ger optimala resultat.
Vanligtvis finns det inte ett enda tröskelvärde som ger både den bästa sanna positiva frekvensen (TPR) och den lägre falska positiva frekvensen (FPR). Det innebär att det optimala tröskelvärdet beror på vad du försöker uppnå. I vårt scenario är det till exempel mycket viktigt att ha en hög sann positiv hastighet, för om en vandrare inte identifieras och en lavin inträffar vet teamet inte att de ska räddas. Det finns dock en kompromiss: om den falska positiva andelen är för hög kan räddningsteamet upprepade gånger skickas ut för att rädda människor som helt enkelt inte finns. I andra situationer anses den falska positiva frekvensen vara viktigare. Till exempel har vetenskapen en låg tolerans för falskt positiva resultat. Om den falska positiva andelen vetenskapliga experiment var högre skulle det finnas en oändlig mängd motstridiga påståenden, och det skulle vara omöjligt att förstå vad som är verkligt.
Jämföra modeller med AUC
Du kan använda ROC-kurvor för att jämföra modeller med varandra, precis som du kan med kostnadsfunktioner. En ROC-kurva för en modell visar hur bra den kommer att fungera för en mängd olika beslutströsklar. I slutändan är det viktigaste i en modell hur den kommer att fungera i den verkliga världen, där det bara finns ett beslutströskelvärde. Varför skulle vi då vilja jämföra modeller med tröskelvärden som vi aldrig kommer att använda? Det finns två svar på detta.
För det första är det som att jämföra ROC-kurvor på ett visst sätt som att utföra ett statistiskt test som säger oss att inte bara en modell gjorde bättre på just den här testuppsättningen, utan om den sannolikt kommer att fortsätta att prestera bättre i framtiden. Detta ligger utanför omfattningen av det här inlärningsmaterialet, men det är värt att tänka på.
För det andra visar ROC-kurvan i viss mån hur beroende modellen är av att ha det perfekta tröskelvärdet. Om vår modell till exempel bara fungerar bra när vi har ett beslutströskelvärde på 0,9, men mycket högre än eller under det här värdet, är det inte en bra design. Vi föredrar förmodligen att arbeta med en modell som fungerar ganska bra för olika tröskelvärden, med vetskapen om att om de verkliga data vi stöter på skiljer sig något från vår testuppsättning kommer modellens prestanda inte nödvändigtvis att kollapsa.
Hur man jämför ROCs?
Det enklaste sättet att jämföra ROCs numeriskt är att använda området under kurvan (AUC). Bokstavligen är det här området i grafen som ligger under kurvan. Till exempel har vår perfekta modell från den senaste övningen en AUC på 1:
Även om vår modell som inte var bättre än slumpen har ett område på cirka 0,5:
Ju mer perfekt en modell är, desto större blir det här området. Om vi har en modell med en stor AUC vet vi att den fungerar bra för en mängd olika tröskelvärden, och därför har den förmodligen bra arkitektur och har tränats väl. Däremot fungerar inte en modell med en liten AUC (närmare 0,5).