Hvordan å Beregne Presisjon, Recall, og F-Tiltak for Ubalansert Klassifisering

Tweet Dele Dele

Sist Oppdatert August 2, 2020

Klassifisering nøyaktighet er det totale antall korrekte spådommer dividert med totalt antall spådommer gjort til et dataset.

Som en ytelse måling, nøyaktighet er upassende for ubalansert klassifisering problemer.,

Den viktigste grunnen er at det overveldende antall eksempler fra de fleste klasse (eller klasser) vil overvelde rekke eksempler i minoritet, noe som betyr at selv unskillful modeller kan oppnå nøyaktighet score på 90 prosent, eller 99 prosent, avhengig av hvor alvorlig klasse ubalanse skjer for å være.

Et alternativ til å bruke klassifisering nøyaktighet er å bruke precision og recall beregninger.

I denne opplæringen vil du oppdage hvordan å beregne og utvikle en intuisjon for presisjon og recall for ubalansert klassifisering.,

Etter å ha fullført denne opplæringen, vil du vite:

  • Presisjon tallfester antall positive klasse spådommer som faktisk hører til den positive klasse.
  • Tilbakekall tallfester antall positive klasse spådommer gjort ut av alle positive eksempler i datasettet.
  • F-Tiltaket gir en enkel poengsum som hensyntar både bekymringer av precision og recall i ett tall.

en Kick-start på prosjektet med min nye bok Ubalansert Klassifisering med Python, inkludert trinnvise veiledninger og Python kildekoden filer for alle eksempler.,

La oss komme i gang.

  • Oppdatere Jan/2020: Forbedret language om målet med presisjon og recall. Fikset skrivefeil om hva presisjon og recall søker å minimere (takk for kommentarer!).
  • Oppdatere Feb/2020: Rettet skrivefeil i variabelnavn for recall og f1.

Hvordan å Beregne Presisjon, Recall, og F-Tiltak for Ubalansert Klassifisering
Photo av Waldemar Fusjon, noen rettigheter er reservert.,

Veiledning Oversikt

Denne opplæringen er delt inn i fem deler; de er:

  1. Forvirring Matrise for Ubalansert Klassifisering
  2. Presisjon for Ubalansert Klassifisering
  3. Tilbakekall for Ubalansert Klassifisering
  4. Presisjon vs. Recall for Ubalansert Klassifisering
  5. F-Tiltak for Ubalansert Klassifisering

Forvirring Matrise for Ubalansert Klassifisering

Før vi dykke inn i presisjon og recall, det er viktig å gjennomgå forvirring matrise.,

For ubalansert klassifisering problemer, de fleste klasse er vanligvis referert til som negative utfall (f.eks. slike som «ingen endring» eller «negativ test resultat»), og minoritet er vanligvis referert til som positivt utfall (f.eks. «endre» eller «positiv test resultat»).

Den forvirring matrix gir mer innsikt ikke bare ytelsen av en prediktiv modell, men også hvilke klasser som blir spådd riktig, noe som feil, og hva slags feil som blir gjort.,

Den enkleste forvirring matrix er for en to-klasse klassifisering problemet med negative (klasse 0) og positive (klasse 1) klasser.

I denne typen forvirring matrix, hver celle i tabellen har en bestemt og godt forstått navn, oppsummert som følger:

presisjon og recall beregningene er definert i form av cellene i forvirringen matrix, spesielt vilkår som sanne positiver og falske negativer.

Nå som vi har børstet opp på forvirring matrix, la oss ta en nærmere titt på presisjon beregningen.,

Presisjon for Ubalansert Klassifisering

Presisjon er en beregning som tallfester antall riktige positive spådommer gjort.

Presisjon, derfor beregner presisjon for den minoritet.

Det er beregnet som forholdet mellom gjettet riktig positive eksempler, delt på totalt antall positive eksempler som ble spådd.

Presisjon vurderer brøkdel av riktig klassifisert tilfeller blant de som er klassifisert som positivt …

— Side 52, Læring fra Ubalanserte datasett, 2018.,

Presisjon for Binære Klassifisering

I et ubalansert klassifisering problem med to klasser, presisjon er beregnet som antall sanne positive, delt på totalt antall sanne positive og falske positiver.

  • Presisjon = TruePositives / (TruePositives + FalsePositives)

resultatet er en verdi mellom 0.0 ingen presisjon og 1,0 for hele eller perfekt presisjon.

La oss gjøre denne beregningen betong med noen eksempler.,

bør du Vurdere et datasett med en 1:100 minoritet til majoritet forhold, med 100 minoritet eksempler og 10 000 fleste klasse eksempler.

En modell gjør spådommer og spår 120 eksempler som hører til minoritet, 90 som er riktig, og 30 av disse er feil.

presisjon for denne modellen er beregnet som:

  • Presisjon = TruePositives / (TruePositives + FalsePositives)
  • Presisjon = 90 / (90 + 30)
  • Presisjon = 90 / 120
  • Presisjon = 0.75

resultatet er en presisjon på 0,75, som er en rimelig verdi, men ikke enestående.,

Du kan se at presisjon er rett og slett forholdet mellom riktige positive spådommer ut av alle positive spådommer gjort, eller nøyaktigheten av minoritet spådommer.

Vurdere det samme datasettet, der en modell spår 50 eksempler som tilhører mindretallet klasse, 45 som er sanne positive og fem av dem er falske positive. Vi kan beregne presisjon for denne modellen er som følger:

  • Presisjon = TruePositives / (TruePositives + FalsePositives)
  • Presisjon = 45 / (45 + 5)
  • Presisjon = 45 / 50
  • Presisjon = 0.,90

I dette tilfellet, selv om modellen spådd langt færre eksempler som hører til minoritet, forholdet til riktige positive eksempler er mye bedre.

Dette understreker at selv om presisjon er nyttig, det forteller ikke hele historien. Det gjør ikke kommentere hvor mange reelle positive klasse eksempler var spådd som tilhørte den negative klasse, såkalte falske negativer.

Ønsker å Komme i Gang Med Ubalanse Klassifisering?

Ta min gratis 7-dagers e-post lynkurs nå (med eksempelkode).,

Klikk for å registrere deg, og også få en gratis PDF Ebok-versjon av kurset.

Last ned Din GRATIS Mini-Kurs

Presisjon for Multi-Klasse Klassifisering

Presisjon er ikke begrenset til binære klassifisering problemer.

I et ubalansert klassifisering problemet med mer enn to klasser, presisjon er beregnet som summen av sanne positive tvers av alle klasser delt på summen av sanne positive og falskt positive resultater på tvers av alle klasser.,

  • Presisjon = Sum c i C TruePositives_c / Sum c i C (TruePositives_c + FalsePositives_c)

For eksempel, vi kan ha en ubalansert multiclass klassifisering problem der flertallet klasse er den negative klasse, men det er to positive mindretallet klasser: klasse 1 og klasse 2. Presisjon kan kvantifisere forholdet mellom riktige spådommer over både positive klasser.,

bør du Vurdere et datasett med en 1:1:100 minoritet til majoritet klasse forholdet, som er en 1:1-forhold for hver positiv klasse og en 1:100 ratio for mindretallet klasser for de fleste klasse, og vi har 100 eksempler i hver minoritet, og 10.000 eksempler i de fleste klasse.

En modell gjør spådommer og spår 70 eksempler for første minoritet, hvor 50 er riktig og 20 er feil. Det spår 150 for den andre klassen med 99 riktig og 51 feil., Presisjon kan være beregnet for denne modellen er som følger:

Vi kan se at presisjonen beregning beregning av vekter som vi øke antall minoritetsspråklige klasser.

Beregne Presisjon Med Scikit-Lær

presisjon resultat kan beregnes ved hjelp av precision_score() scikit-lær funksjon.

For eksempel, vi kan bruke denne funksjonen til å beregne presisjon for scenariene i forrige avsnitt.

Først, i tilfelle der det er 100 positiv til 10.000 negative eksempler, og en modell spår 90 sanne positive og 30 falske positiver. Den komplette eksempel er listet nedenfor.,

Running the example calculates the precision, matching our manual calculation.

1
Precision: 0.,750

Neste, vi kan bruke de samme funksjon for å beregne presisjon for multiclass problem med 1:1:100, med 100 eksempler i hver minoritet og 10 000 i de fleste klasse. En modell spår 50 sanne positive og 20 falskt positive resultater for klasse 1 og 99 sanne positive og 51 falske positiver for klasse 2.,

Når du bruker precision_score () – funksjonen for multiclass klassifisering, det er viktig å angi mindretallet klasser via «etiketter» argument og til å utføre satt den «gjennomsnittlige» – argumentet til ‘micro’ for å sikre beregningen er utført som vi forventer.

hele eksempel er listet nedenfor.

Igjen, kjører eksempel beregner presisjon for multiclass eksempel matchende våre manuell beregning.,

1
Presisjon: 0.,677

Tilbakekall for Ubalansert Klassifisering

Tilbakekall er en beregning som tallfester antall riktige positive spådommer gjort ut av alle positive spådommer som kunne ha blitt gjort.

i Motsetning til presisjon som bare kommentarer på de riktige positive spådommer ut av alle positive spådommer, husker gir en indikasjon på savnet positive spådommer.

På denne måten, husker gir noen forestilling om dekning av den positive klasse.,

For ubalansert læring, husker er vanligvis brukes til å måle dekning av minoritet.

— Side 27, Ubalanserte Læring: Foundations, Algoritmer, og Programmer, 2013.

Tilbakekall for Binære Klassifisering

I et ubalansert klassifisering problem med to klasser, husker er beregnet som antall sanne positive, delt på totalt antall sanne positiver og falske negativer.

  • Tilbakekall = TruePositives / (TruePositives + FalseNegatives)

resultatet er en verdi mellom 0.,0 for ingen husker og 1,0 for hele eller perfekt gjenkalling.

La oss gjøre denne beregningen betong med noen eksempler.

Som i forrige avsnitt, vurdere et datasett med 1:100 minoritet til majoritet forhold, med 100 minoritet eksempler og 10 000 fleste klasse eksempler.

En modell gjør spådommer og spår 90 av de positive klasse spådommer riktig og 10 feil. Vi kan beregne recall for denne modellen er som følger:

  • Tilbakekall = TruePositives / (TruePositives + FalseNegatives)
  • Tilbakekall = 90 / (90 + 10)
  • Tilbakekall = 90 / 100
  • Tilbakekall = 0.,9

Denne modellen har en god recall.

Tilbakekall for Multi-Klasse Klassifisering

Tilbakekall er ikke begrenset til binære klassifisering problemer.

I et ubalansert klassifisering problemet med mer enn to klasser, husker er beregnet som summen av sanne positive tvers av alle klasser delt på summen av sanne positiver og falske negativer på tvers av alle klasser.,

  • Tilbakekall = Sum c i C TruePositives_c / Sum c i C (TruePositives_c + FalseNegatives_c)

Som i forrige avsnitt, vurdere et datasett med en 1:1:100 minoritet til majoritet klasse forholdet, som er en 1:1-forhold for hver positiv klasse og en 1:100 ratio for mindretallet klasser for de fleste klasse, og vi har 100 eksempler i hver minoritet, og 10 000 eksempler i de fleste klasse.

En modell spår 77 eksempler på riktig måte og 23 feil for klasse 1, og 95 riktig og fem feil for klasse 2., Vi kan beregne recall for denne modellen er som følger:

Beregne Husker Med Scikit-Lær

Det husker resultat kan beregnes ved hjelp av recall_score() scikit-lær funksjon.

For eksempel, vi kan bruke denne funksjonen til å beregne recall for scenariene ovenfor.

for det Første, vi kan vurdere saken på en 1:100 ubalanse med 100 og 10 000 eksempler henholdsvis, og en modell spår 90 sanne positive og 10 falske negativer.

hele eksempel er listet nedenfor.

å Kjøre eksempel, kan vi se at stillingen samsvarer med manuell beregning ovenfor.,

1
Husker: 0.,900

Vi kan også bruke recall_score() for ubalansert multiclass klassifisering problemer.

I dette tilfellet, datasettet har en 1:1:100 ubalanse, med 100 i hver minoritet og 10 000 i de fleste klasse. En modell spår 77 sanne positive og 23 falske negativer for klasse 1 og 95 sanne positive og fem falske negativer for klasse 2.

hele eksempel er listet nedenfor.

Igjen, kjører eksempel beregner recall for multiclass eksempel matchende våre manuell beregning.,

1
Husker: 0.860

Presisjon vs., Recall for Ubalansert Klassifisering

Du kan velge å bruke presisjon eller hent på din ubalanserte klassifisering problem.

Maksimering av presisjon vil redusere antall falske positive, mens maksimere recall vil redusere antall falske negativer.

  • Presisjon: Egnet når minimere falske positiver er i fokus.
  • Husker: Riktig når minimere falske negativer er i fokus.

noen Ganger, vi vil ha gode prognoser for de positive klasse. Vi ønsker høy presisjon og høy recall.,

Dette kan være utfordrende, som ofte øker i recall kommer ofte på bekostning av nedgang i presisjon.

I ubalanserte datasett, målet er å forbedre husker uten å skade presisjon. Disse målene, er imidlertid ofte motstridende, siden for å øke TP for minoritet, antall FP er også ofte økt, noe som resulterer i redusert presisjon.

— Side 55, Ubalanserte Læring: Foundations, Algoritmer, og Programmer, 2013.,

Likevel, i stedet for å plukke en måling eller andre, kan vi velge en ny beregning som kombinerer både presisjon og recall inn en score.

F-Tiltak for Ubalansert Klassifisering

Klassifisering nøyaktighet er mye brukt fordi det er ett enkelt mål som brukes for å oppsummere modell ytelse.

F-Tiltaket gir en måte å kombinere både presisjon og recall inn et enkelt mål som fanger opp både egenskaper.

Alene, verken presisjon eller hent forteller hele historien., Vi kan ha god presisjon med forferdelig husker, eller alternativt, forferdelig presisjon med utmerket husker. F-tiltaket gir en måte å uttrykke både bekymringer med et enkelt resultat.

Når precision og recall har blitt beregnet for en binær eller multiclass klassifisering problem, to poeng kan være kombinert i beregningen av F-Mål.

Den tradisjonelle F tiltaket er beregnet som følger:

  • F-Mål = (2 * Presisjon * Recall) / (Precision + Recall)

Dette er det harmoniske gjennomsnittet av de to fraksjoner., Dette er noen ganger kalt F-Score eller F1-Score, og er kanskje den mest vanlige beregningen brukes på ubalanserte klassifisering problemer.

… F1-mål, noe som vekter presisjon og recall like, er den varianten som oftest brukes når lære fra ubalanserte data.

— Side 27, Ubalanserte Læring: Foundations, Algoritmer, og Programmer, 2013.

Som presisjon og recall, en fattig F-Mål poengsum 0.0 og en best eller perfekte F-Mål resultat er 1.,0

For eksempel, en perfekt presisjon og recall score ville resultere i en perfekt F-Mål score:

  • F-Mål = (2 * Presisjon * Recall) / (Precision + Recall)
  • F-Mål = (2 * 1.0 * 1.0) / (1.0 + 1.0)
  • F-Mål = (2 * 1.0) / 2.0
  • F-Mål = 1.0

La oss gjøre denne beregningen betong med arbeidet eksempel.

Vurdere en binær klassifisering datasett med 1:100 minoritet til majoritet forhold, med 100 minoritet eksempler og 10 000 fleste klasse eksempler.,

Vurdere en modell som forutsier 150 eksempler for den positive klasse, 95 er riktig (sanne positive), som betyr fem var savnet (falskt negative) og 55 er feil (falske positive).

Vi kan beregne presisjon som følger:

  • Presisjon = TruePositives / (TruePositives + FalsePositives)
  • Presisjon = 95 / (95 + 55)
  • Presisjon = 0.633

Vi kan beregne husker som følger:

  • Tilbakekall = TruePositives / (TruePositives + FalseNegatives)
  • Tilbakekall = 95 / (95 + 5)
  • Tilbakekall = 0.,95

Dette viser at modellen har dårlig presisjon, men utmerket husker.

til Slutt, kan vi beregne F-Tiltak som følger:

Vi kan se at den gode husker nivåer-ut dårlig presisjon, noe som gir et greit eller rimelig F-mål score.

Beregn F-Tiltak Med Scikit-Lær

F-mål resultat kan beregnes ved hjelp av f1_score() scikit-lær funksjon.

vi kan For eksempel bruke denne funksjonen for å beregne F-Tiltak for scenariet ovenfor.,

Dette er tilfellet for en 1:100 ubalanse med 100 og 10 000 eksempler henholdsvis, og en modell spår 95 sanne positive, fem falske negativer, og 55 falske positiver.

hele eksempel er listet nedenfor.

å Kjøre eksempel regner ut F-Mål, matchende våre manuell beregning, innen noen mindre avrundingsfeil.,

1
F-Mål: 0.,760

Mer å Lese

Dette avsnittet gir mer ressurser på emnet dersom du er ute etter å gå dypere.

Tutorials

  • Hvordan å Beregne Presisjon, Husker, F1, og Mer for dybdekunnskap Modeller
  • Hvordan å Bruke ROC-Kurver og Presisjon-Recall Kurver for Klassifisering i Python

Papirer

  • En Systematisk Analyse Av Ytelse Tiltak For Klassifisering Oppgaver, 2009.

Bøker

  • Ubalansert Læring: Foundations, Algoritmer, og Programmer, 2013.,
  • Læring fra Ubalanserte datasett, 2018.

API

  • sklearn.beregninger.precision_score API.
  • sklearn.beregninger.recall_score API.
  • sklearn.beregninger.f1_score API.

Artikler

  • Forvirring matrix, Wikipedia.
  • Presisjon og recall, Wikipedia.
  • F1 score, Wikipedia.

Oppsummering

I denne opplæringen, oppdaget hvordan å beregne og utvikle en intuisjon for presisjon og recall for ubalansert klassifisering.,

Spesifikt, du lært:

  • Presisjon tallfester antall positive klasse spådommer som faktisk hører til den positive klasse.
  • Tilbakekall tallfester antall positive klasse spådommer gjort ut av alle positive eksempler i datasettet.
  • F-Tiltaket gir en enkel poengsum som hensyntar både bekymringer av precision og recall i ett tall.

har du spørsmål?
Stille dine spørsmål i kommentarfeltet under, og jeg vil gjøre mitt beste for å svare.,

– >

Få et Håndtak på Ubalanserte Klassifisering!

Utvikle Ubalansert Læring Modeller i Minutter

…med bare et par linjer av python-kode

Oppdag hvordan i min nye Bok:
Ubalansert Klassifisering med Python

Det gir selvstudium tutorials og ende-til-ende prosjekter på:
resultatberegninger, Undersampling Metoder, SLO Terskelen for å Flytte, Sannsynligheten for Kalibrering, kostnadssensitive Algoritmer
og mye mer…,

Bringe Ubalansert Klassifisering Metoder til Din Maskin Læring Prosjekter

Se Hva som er Inni

Tweet Dele Dele

Share

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *