Binær klassificering
Bemærk
Se fanen Tekst og billeder for flere detaljer!
Klassificering, ligesom regression, er en overvåget maskinel indlæringsteknik; og følger derfor den samme iterative proces med oplæring, validering og evaluering af modeller. I stedet for at beregne numeriske værdier som en regressionsmodel beregner de algoritmer, der bruges til at oplære klassificeringsmodeller , sandsynlighedsværdier for klassetildeling, og de evalueringsdata, der bruges til at vurdere modellens ydeevne, sammenligner de forudsagte klasser med de faktiske klasser.
Binære klassificeringsalgoritmer bruges til at oplære en model, der forudsiger en af to mulige mærkater for en enkelt klasse. I bund og grund forudsiger sand eller falsk. I de fleste reelle scenarier består de dataobservationer, der bruges til at oplære og validere modellen, af flere funktionsværdier (x) og en y-værdi , der enten er 1 eller 0.
Eksempel – binær klassificering
Lad os se på et forenklet eksempel, der bruger en enkelt funktion (x) til at forudsige, om mærkaten y er 1 eller 0, for at forstå, hvordan binær klassificering fungerer. I dette eksempel bruger vi glukoseniveauet for en patient til at forudsige, om patienten har diabetes eller ej. Her er de data, som vi skal bruge til at oplære modellen:
|
|
|---|---|
| Blodglukose (x) | Diabetiker? (y) |
| 67 | 0 |
| 103 | 1 |
| 114 | 1 |
| 72 | 0 |
| 116 | 1 |
| 65 | 0 |
Oplæring af en binær klassificeringsmodel
For at oplære modellen bruger vi en algoritme til at tilpasse træningsdataene til en funktion, der beregner sandsynligheden for , at klassemærkaten er sand (med andre ord, at patienten har diabetes). Sandsynligheden måles som en værdi mellem 0,0 og 1,0, så den samlede sandsynlighed for alle mulige klasser er 1,0. Så hvis sandsynligheden for, at en patient har diabetes, f.eks. er 0,7, er der en tilsvarende sandsynlighed på 0,3 for, at patienten ikke er diabetiker.
Der er mange algoritmer, der kan bruges til binær klassificering, f.eks . logistisk regression, som resulterer i en sigmoidfunktion (S-formet) med værdier mellem 0,0 og 1,0, som denne:
Bemærk
På trods af navnet bruges logistisk regression i maskinel indlæring til klassificering, ikke regression. Det vigtige punkt er den logistiske karakter af den funktion, den producerer, som beskriver en S-formet kurve mellem en lavere og øvre værdi (0,0 og 1,0, når den bruges til binær klassificering).
Den funktion, der produceres af algoritmen, beskriver sandsynligheden for , at y er sand (y=1) for en given værdi på x. Matematisk kan du udtrykke funktionen på følgende måde:
f(x) = P(y=1 | x)
For tre af de seks observationer i træningsdataene ved vi, at y er helt sikkert sand, så sandsynligheden for disse observationer, at y= 1 er 1,0 , og for de andre tre ved vi, at y er helt sikkert falsk, så sandsynligheden for, at y=1 er 0,0. Den S-formede kurve beskriver sandsynlighedsfordelingen, så afbildningen af en værdi på x på linjen identificerer den tilsvarende sandsynlighed for, at y er 1.
Diagrammet indeholder også en vandret linje til at angive den tærskel , hvor en model, der er baseret på denne funktion, forudsiger sand (1) eller falsk (0). Tærsklen ligger midt i punktet for y (P(y) = 0,5). For alle værdier på dette eller nyere tidspunkt forudsiger modellen sand (1); mens det for alle værdier under dette punkt forudsiger falsk (0). For en patient med et glukoseniveau på 90 vil funktionen f.eks. resultere i en sandsynlighedsværdi på 0,9. Da 0,9 er højere end tærsklen på 0,5, forudsiger modellen sand (1) - med andre ord forudsiges patienten at have diabetes.
Evaluering af en binær klassificeringsmodel
Som med regression, når du oplærer en binær klassificeringsmodel, holder du et tilfældigt undersæt af data tilbage, som den oplærte model skal valideres med. Lad os antage, at vi har holdt følgende data tilbage for at validere vores diabetesklassificering:
| Blodglukose (x) | Diabetiker? (y) |
|---|---|
| 66 | 0 |
| 107 | 1 |
| 112 | 1 |
| 71 | 0 |
| 87 | 1 |
| 89 | 1 |
Anvendelse af den logistiske funktion, vi tidligere har afledt til x-værdierne , resulterer i følgende afbildning.
Baseret på om sandsynligheden beregnet af funktionen er over eller under tærsklen, genererer modellen en forudsagt mærkat på 1 eller 0 for hver observation. Vi kan derefter sammenligne de forudsagte klassemærkater (ŷ) med de faktiske klassemærkater (y), som vist her:
| Blodglukose (x) | Faktisk diabetesdiagnosticering (y) | Forudsagt diabetesdiagnosticering (ŷ) |
|---|---|---|
| 66 | 0 | 0 |
| 107 | 1 | 1 |
| 112 | 1 | 1 |
| 71 | 0 | 0 |
| 87 | 1 | 0 |
| 89 | 1 | 1 |
Målepunkter for binær klassificeringsevaluering
Det første trin i beregningen af evalueringsdata for en binær klassificeringsmodel er normalt at oprette en matrix med antallet af korrekte og forkerte forudsigelser for hvert mulige klassenavn:
Denne visualisering kaldes en forvirringsmatrix, og den viser forudsigelsestotalerne hvor:
- ŷ=0 og y=0: Sande negativer (TN)
- ŷ=1 og y=0: Falske positiver (FP)
- ŷ=0 og y=1: Falske negativer (FN)
- ŷ=1 og y=1: Sande positive ( TP)
Arrangementet af forvirringsmatrixen er sådan, at korrekte (sande) forudsigelser vises på en diagonal linje fra øverste venstre til nederste højre hjørne. Farveintensitet bruges ofte til at angive antallet af forudsigelser i hver celle, så et hurtigt blik på en model, der forudsiger godt, bør vise en dybt skyggelagt diagonal tendens.
Nøjagtighed
Den enkleste metrikværdi, du kan beregne ud fra forvirringsmatrixen, er nøjagtigheden – andelen af forudsigelser, som modellen fik ret i. Nøjagtighed beregnes som:
(TN+TP) ÷ (TN+FN+FP+TP)
I tilfælde af vores diabetes eksempel er beregningen:
(2+3) ÷ (2+1+0+3)
= 5 ÷ 6
= 0.83
Så for vores valideringsdata producerede diabetesklassificeringsmodellen korrekte forudsigelser 83% af tiden.
Nøjagtighed kan indledningsvist virke som en god metrikværdi til at evaluere en model, men overvej dette. Antag, at 11% af befolkningen har diabetes. Du kan oprette en model, der altid forudsiger 0, og den opnår en nøjagtighed på 89%, selvom den ikke gør noget reelt forsøg på at skelne mellem patienter ved at evaluere deres funktioner. Det, vi virkelig har brug for, er en dybere forståelse af, hvordan modellen klarer sig ved at forudsige 1 for positive tilfælde og 0 for negative sager.
Huske
Tilbagekaldelse er en metrikværdi, der måler andelen af positive tilfælde, som modellen identificerede korrekt. Med andre ord, sammenlignet med antallet af patienter, der har diabetes, hvor mange forudsagde modellen at have diabetes?
Formlen for tilbagekaldelse er:
TP-÷ (TP+FN)
For vores diabeteseksempel:
3 ÷ (3+1)
= 3 ÷ 4
= 0.75
Så vores model korrekt identificeret 75% af patienter, der har diabetes som havende diabetes.
Præcision
Præcision er en lignende metrikværdi som genkaldelse, men måler andelen af forudsagte positive tilfælde, hvor den sande mærkat faktisk er positiv. Med andre ord, hvilken andel af de patienter forudsagt af modellen til at have diabetes faktisk har diabetes?
Formlen for præcision er:
TP-÷ (TP+FP)
For vores diabeteseksempel:
3 ÷ (3+0)
= 3 ÷ 3
= 1.0
Så 100% af de patienter, der forudsiges af vores model til at have diabetes, har faktisk diabetes.
F1-score
F1-score er en samlet metrikværdi, der kombinerer genkaldelse og præcision. Formlen for F1-score er:
(2 x Precision x Recall) ÷ (Præcision + Genkaldelse)
For vores diabeteseksempel:
(2 x 1,0 x 0,75) ÷ (1,0 + 0,75)
= 1,5 ÷ 1,75
= 0,86
Område under kurven (AUC)
Et andet navn, der skal tilbagekaldes, er den sande positive sats (TPR), og der er en tilsvarende metrikværdi, der kaldes den falske positive rente (FPR), der beregnes som FP÷(FP+TN). Vi ved allerede, at TPR for vores model, når du bruger en grænse på 0,5, er 0,75, og vi kan bruge formlen for FPR til at beregne en værdi på 0÷2 = 0.
Hvis vi ændrer den tærskel, over hvilken modellen forudsiger sand (1), vil det naturligvis påvirke antallet af positive og negative forudsigelser. og derfor ændre målepunkterne TPR og FPR. Disse målepunkter bruges ofte til at evaluere en model ved at afbilde en roc-kurve ( Received Operator Characteristic ), der sammenligner TPR og FPR for hver mulig tærskelværdi mellem 0,0 og 1,0:
ROC-kurven for en perfekt model går lige op på TPR-aksen til venstre og derefter på tværs af FPR-aksen øverst. Da afbildningsområdet for kurven måler 1x1, vil området under denne perfekte kurve være 1,0 (hvilket betyder, at modellen er korrekt 100% af tiden). I modsætning hertil repræsenterer en diagonal linje fra nederste venstre hjørne til øverste højre de resultater, der ville blive opnået ved tilfældigt at gætte en binær etiket. et område under kurven på 0,5. Med andre ord kan du med rimelighed forvente at gætte korrekt 50% af tiden på grund af to mulige klassemærkater.
I tilfælde af vores diabetesmodel produceres kurven ovenfor, og området under kurven (AUC) metrikværdien er 0,875. Da AUC er højere end 0,5, kan vi konkludere, at modellen præsterer bedre til at forudsige, om en patient har diabetes eller ej, end tilfældigt gætte.