AUC-ROC Kurve I Maskinlæring Tydelig Forklart
AUC-ROC Kurve – Star Performer!
du har bygget din maskinlæringsmodell – så hva er neste? Du må vurdere det og validere hvor bra (eller dårlig) det er, så du kan da bestemme om du skal implementere det. DET er her AUC-ROC-kurven kommer inn.navnet kan være en munnfull, men det sier bare at vi beregner «Området Under Kurven» (AUC) av «Mottaker Karakteristisk Operatør» (ROC). Forvirret? Jeg føler deg! Jeg har vært i dine sko. Men ikke bekymre deg, vi vil se hva disse begrepene betyr i detalj, og alt vil være et stykke kake!
For nå, bare vet AT AUC-ROC kurven hjelper oss å visualisere hvor godt vår maskinlæring klassifiserer utfører. Selv om det fungerer for bare binære klassifiseringsproblemer, vil vi se mot slutten hvordan vi kan utvide det for å evaluere klassifiseringsproblemer i flere klasser også.
Vi vil dekke emner som følsomhet og spesifisitet også, siden disse er sentrale emner bak AUC-ROC-kurven.jeg foreslår at du går gjennom artikkelen Om Forvirringsmatrise, da den vil introdusere noen viktige begreper som vi skal bruke i denne artikkelen.
Innholdsfortegnelse
- Hva er Sensitivitet og Spesifisitet?
- Sannsynlighet For Spådommer
- HVA Er AUC-ROC-Kurven?
- HVORDAN FUNGERER AUC-ROC-Kurven?
- AUC-ROC I Python
- AUC-ROC for Klassifisering I Flere Klasser
Hva er Sensitivitet og Spesifisitet?
dette er hva en forvirringsmatrise ser ut:
fra forvirringsmatrisen kan vi utlede noen viktige beregninger som ikke ble diskutert i forrige artikkel. La oss snakke om dem her.
Følsomhet / Sann Positiv Hastighet/Tilbakekalling
Sensitivitet forteller oss hvilken andel av den positive klassen som ble riktig klassifisert.
et enkelt eksempel ville være å avgjøre hvilken andel av de faktiske syke menneskene som ble korrekt oppdaget av modellen.
Falsk Negativ Rente
Falsk Negativ Rente (Fnr) forteller oss hvilken andel av den positive klassen som ble feil klassifisert av klassifikatoren.
en høyere TPR og en lavere FNR er ønskelig siden vi vil klassifisere den positive klassen riktig.
Spesifisitet / Sann Negativ Rate
Spesifisitet forteller oss hvilken andel av den negative klassen som ble riktig klassifisert.
Ved å Ta samme eksempel Som I Følsomhet, Ville Spesifisitet bety å bestemme andelen friske mennesker som ble korrekt identifisert av modellen.
Falsk Positiv Rente
FPR forteller oss hvilken andel av den negative klassen som ble feilaktig klassifisert av klassifikatoren.
en høyere TNR og en lavere FPR er ønskelig siden vi vil klassifisere den negative klassen riktig.Ut av disse beregningene er Følsomhet og Spesifisitet kanskje det viktigste, og vi vil se senere hvordan disse brukes til å bygge en evalueringsmåling. Men før det, la oss forstå hvorfor sannsynligheten for prediksjon er bedre enn å forutsi målklassen direkte.
Sannsynlighet For Prediksjoner
en klassifiseringsmodell for maskinlæring kan brukes til å forutsi den faktiske klassen av datapunktet direkte eller forutsi sannsynligheten for å tilhøre forskjellige klasser. Sistnevnte gir oss mer kontroll over resultatet. Vi kan bestemme vår egen terskel for å tolke resultatet av klassifikatoren. Dette er noen ganger mer forsiktig enn bare å bygge en helt ny modell!
Innstilling av forskjellige terskler for klassifisering av positiv klasse for datapunkter vil utilsiktet endre Sensitiviteten og Spesifisiteten til modellen. Og en av disse tersklene vil trolig gi et bedre resultat enn de andre, avhengig av om vi tar sikte på å senke antall Falske Negativer eller Falske Positiver.
Ta en titt på tabellen nedenfor:
beregningene endres med de endrede terskelverdiene. Vi kan generere forskjellige forvirringsmatriser og sammenligne de ulike beregningene som vi diskuterte i forrige avsnitt. Men det ville ikke være en forsiktig ting å gjøre. I stedet kan vi generere et plott mellom noen av disse beregningene, slik at vi enkelt kan visualisere hvilken terskel som gir oss et bedre resultat.
AUC-ROC kurven løser nettopp det problemet!
HVA er AUC-ROC-kurven?
Roc-kurven (Receiver Operator Characteristic) er en evalueringsmåling for problemer med binær klassifisering. Det er en sannsynlighetskurve som plotter TPR mot FPR ved ulike terskelverdier og skiller i hovedsak signalet fra støyen. Arealet Under Kurven (AUC) er målet for en klassifikators evne til å skille mellom klasser og brukes som et sammendrag AV ROC-kurven.
jo høyere AUC, desto bedre er ytelsen til modellen ved å skille mellom de positive og negative klassene.
NÅR AUC = 1, kan klassifikatoren perfekt skille mellom Alle Positive og Negative klassepunkter riktig. HVIS AUC imidlertid hadde vært 0, ville klassifikatoren forutsi Alle Negativer Som Positive, og alle Positive Som Negative.
når 0.5 <AUC< 1, det er stor sjanse for at klassifikatoren vil kunne skille de positive klasseverdiene fra de negative klasseverdiene. Dette er fordi klassifikatoren er i stand til å oppdage flere antall Sanne positive og Sanne negativer enn Falske negativer og Falske positiver.
NÅR AUC=0,5, kan klassifikatoren ikke skille Mellom Positive og Negative klassepunkter. Betydning enten klassifikatoren forutsier tilfeldig klasse eller konstant klasse for alle datapunktene.
Så jo høyere AUC-verdien for en klassifikator er, desto bedre er evnen til å skille mellom positive og negative klasser.
Hvordan FUNGERER AUC-ROC-Kurven?
i EN ROC-kurve angir en høyere x-akseverdi Et høyere Antall Falske positiver enn Sanne negativer. Mens en høyere y-akse verdi indikerer et høyere antall Sanne positiver enn Falske negativer. Så, valget av terskelen avhenger av evnen til å balansere Mellom Falske positiver og Falske negativer.La oss grave litt dypere og forstå hvordan VÅR ROC-kurve vil se ut for forskjellige terskelverdier og hvordan spesifisiteten og følsomheten vil variere.
Vi kan prøve og forstå denne grafen ved å generere en forvirring matrise for hvert punkt som svarer til en terskel og snakke om ytelsen til vår klassifikator:
Punkt A Er Der Følsomheten er høyest Og Spesifisitet lavest. Dette betyr at Alle De Positive klassepunktene er klassifisert riktig og Alle De Negative klassepunktene er klassifisert feil.
faktisk svarer ethvert punkt på den blå linjen til en situasjon Der Sann Positiv Rente er Lik Falsk Positiv Rente.
alle punkter over denne linjen tilsvarer situasjonen der andelen korrekt klassifiserte punkter som tilhører Den Positive klassen, er større enn andelen feil klassifiserte punkter som tilhører Den Negative klassen.
Selv Om Punkt B har Samme Følsomhet som Punkt A, har Det en høyere Spesifisitet. Det betyr at antall feil Negative klassepunkter er lavere sammenlignet med forrige terskel. Dette indikerer at denne terskelen er bedre enn den forrige.
Mellom punktene C Og D Er Følsomheten ved Punkt c høyere enn Punkt D for samme Spesifisitet. Dette betyr at for samme antall feilklassifiserte Negative klassepunkter, forutså klassifikatoren et høyere Antall Positive klassepoeng. Derfor er terskelen Ved Punkt C bedre enn punkt D.
nå, avhengig av hvor mange feil klassifiserte poeng vi vil tolerere for vår klassifikator, vil vi velge mellom punkt B eller C for å forutsi om du kan beseire meg I PUBG eller ikke.
«Falske forhåpninger er farligere enn frykt.»- J. R. R. Tolkein
Punkt E er Hvor Spesifisiteten blir høyest. Det betyr at Det ikke er Noen Falske Positiver klassifisert av modellen. Modellen kan korrekt klassifisere Alle De Negative klassepunktene! Vi ville velge dette punktet hvis vårt problem var å gi perfekt sang anbefalinger til våre brukere.
Går av denne logikken, kan du gjette hvor punktet som svarer til en perfekt klassifikator ville ligge på grafen?
Ja! Det ville være øverst til venstre på ROC-grafen som svarer til koordinaten (0, 1) i kartesisk plan. Det er her At Både Følsomhet og Spesifisitet ville være høyest og klassifikatoren ville klassifisere alle Positive og Negative klassepunkter riktig.
Forstå AUC-ROC-Kurven I Python
nå kan vi enten manuelt teste Følsomheten og Spesifisiteten for hver terskel eller la sklearn gjøre jobben for oss. Vi går definitivt med sistnevnte!
La oss lage våre vilkårlige data ved hjelp av sklearn make_classification-metoden:Jeg vil teste ytelsen til to klassifikatorer på dette datasettet: Sklearn har en veldig kraftig metode roc_curve () som beregner ROC for klassifikatoren din om noen sekunder! DEN returnerer FPR, TPR og terskelverdiene:
AUC-poengsummen kan beregnes ved hjelp av roc_auc_score () – metoden til sklearn:
0.9761029411764707 0.9233769727403157
Prøv denne koden i live coding-vinduet nedenfor:
Vi Kan også plotte ROC-kurvene for de to algoritmene ved hjelp av matplotlib:
DET fremgår av plottet at AUC for Logistisk Regresjon ROC kurve er høyere enn FOR KNN ROC kurve. Derfor kan vi si at logistisk regresjon gjorde en bedre jobb med å klassifisere den positive klassen i datasettet.
AUC-ROC For Flerklasseklassifisering
SOM jeg sa før, ER AUC-ROC-kurven bare for binære klassifiseringsproblemer. Men vi kan utvide det til multiclass klassifiseringsproblemer ved Å bruke One vs All-teknikken.Så, hvis vi har tre klasser 0, 1 og 2, VIL ROC for klasse 0 bli generert som klassifisering 0 mot ikke 0, dvs. 1 og 2. ROC for klasse 1 vil bli generert som klassifisering 1 mot ikke 1, og så videre.
ROC-kurven for klassifikasjonsmodeller i flere klasser kan bestemmes som nedenfor:
Sluttnotater
jeg håper du fant denne artikkelen nyttig for å forstå hvor kraftig AUC-ROC-kurvemetrikken er i å måle ytelsen til en klassifikator. Du vil bruke dette mye i bransjen og til og med i datavitenskap eller maskinlæring hackathons. Bedre bli kjent med det!
Går videre jeg vil anbefale deg følgende kurs som vil være nyttig i å bygge din data science skarpsindighet:
- Introduksjon Til Data Science
- Applied Machine Learning
Du kan også lese denne artikkelen på Vår Mobile APP
Leave a Reply