Hvordan til at Beregne Præcision, Husker, og F-Foranstaltning for Skæv Klassifikation

Tweet Share Share

Sidst Opdateret den August 2, 2020

Klassificering nøjagtighed er det samlede antal korrekte forudsigelser divideret med det samlede antal af forudsigelser for et datasæt.

som en præstationsforanstaltning er nøjagtigheden uhensigtsmæssig for ubalancerede klassificeringsproblemer.,

hovedårsagen er, at det overvældende antal eksempler fra majoritetsklassen (eller klasserne) vil overvælde antallet af eksempler i minoritetsklassen, hvilket betyder, at selv uhåndterlige modeller kan opnå nøjagtighedsresultater på 90 procent eller 99 procent, afhængigt af hvor alvorlig klassens ubalance sker.

et alternativ til at bruge klassifikationsnøjagtighed er at bruge præcisions-og tilbagekaldelsesmetrics.

i denne tutorial vil du opdage, hvordan du beregner og udvikler en intuition til præcision og tilbagekaldelse til ubalanceret klassificering.,

når du har gennemført denne tutorial, vil du vide:

  • præcision kvantificerer antallet af positive klasseforudsigelser, der faktisk hører til den positive klasse.
  • tilbagekaldelse kvantificerer antallet af positive klasseforudsigelser foretaget ud af alle positive eksempler i datasættet.
  • F-Measure giver en enkelt score, der balancerer både bekymringerne for præcision og tilbagekaldelse i et tal.Kick-start dit projekt med min nye bog ubalanceret klassificering med Python, herunder trin-for-trin tutorials og Python kildekode filer for alle eksempler.,

    lad os komme i gang.

    • opdatering Jan / 2020: forbedret sprog om målet om præcision og tilbagekaldelse. Faste stavefejl om, hvad præcision og tilbagekaldelse søger at minimere (tak for kommentarerne!).opdatering Feb / 2020: fast tastefejl i variabelnavn til tilbagekaldelse og F1.

    Sådan beregnes præcision, tilbagekaldelse og F-mål for ubalanceret klassificering
    foto af Photoaldemar Merger, nogle rettigheder forbeholdes.,

    Tutorial Oversigt

    Denne tutorial er opdelt i fem dele; de er:

    1. Forvirring Matrix for Skæv Klassifikation
    2. Præcision for Skæv Klassifikation
    3. Genkald for Skæv Klassifikation
    4. Præcision vs. Huske for Skæv Klassifikation
    5. F-Foranstaltning for Skæv Klassifikation

    Forvirring Matrix for Skæv Klassifikation

    Før vi dykker ned i precision og recall, det er vigtigt at gennemgå forvirring matrix.,

    for ubalancerede klassificeringsproblemer betegnes majoritetsklassen typisk som det negative resultat (f.eks. “ingen ændring” eller “negativt testresultat”), og minoritetsklassen betegnes typisk som det positive resultat (f. eks. “ændring” eller “positivt testresultat”).

    Den forvirring matrix giver mere indsigt i, ikke kun udførelsen af en prædiktiv model, men også hvilke klasser, der bliver forudsagt korrekt, hvilket er forkert, og hvilken type fejl, der bliver lavet.,

    den enkleste forvirringsmatri.er for et to-klasses klassificeringsproblem med negative (klasse 0) og positive (klasse 1) klasser.

    i denne type forvirringsmatri.har hver celle i tabellen et specifikt og godt forstået navn, opsummeret som følger:

    præcisions-og tilbagekaldelsesmetrikkerne defineres med hensyn til cellerne i forvirringsmatri theen, specifikt udtryk som sande positive og falske negativer.

    nu hvor vi har børstet op på forvirringsmatri theen, lad os se nærmere på præcisionsmetrikningen.,

    præcision for ubalanceret klassificering

    præcision er en metrisk, der kvantificerer antallet af korrekte positive forudsigelser foretaget.

    præcision beregner derfor nøjagtigheden for minoritetsklassen.

    det beregnes som forholdet mellem korrekt forudsagte positive eksempler divideret med det samlede antal positive eksempler, der blev forudsagt.

    Præcision vurderer brøkdel af korrekt klassificerede tilfælde blandt dem, der er klassificeret som positive …

    — Side 52, Lære fra Ubalancerede datasæt, 2018.,

    præcision for binær klassificering

    i et ubalanceret klassifikationsproblem med to klasser beregnes præcision som antallet af sande positive divideret med det samlede antal sande positive og falske positive.

    • Præcision = TruePositives / (TruePositives + FalsePositives)

    resultatet er en værdi mellem 0,0 til ingen præcision og 1,0 for hel eller fuldkommen præcision.

    lad os gøre denne beregning konkret med nogle eksempler.,

    overvej et datasæt med en 1:100 mindretal til flertal forholdet, med 100 mindretal eksempler og 10.000 flertal klasse eksempler.

    en model fremsætter forudsigelser og forudsiger 120 eksempler som tilhørende minoritetsklassen, hvoraf 90 er korrekte, og 30 er forkerte.

    Den præcision for denne model er beregnet som:

    • Præcision = TruePositives / (TruePositives + FalsePositives)
    • Præcision = 90 / (90 + 30)
    • Præcision = 90 / 120
    • Præcision = 0.75

    resultatet er en præcision af 0.75, der er en rimelig værdi, men ikke fremragende.,

    Du kan se, at præcision simpelthen er forholdet mellem korrekte positive forudsigelser ud af alle positive forudsigelser, der er foretaget, eller nøjagtigheden af minoritetsklasseforudsigelser.

    overvej det samme datasæt, hvor en model forudsiger 50 eksempler, der tilhører minoritetsklassen, hvoraf 45 er sande positive og fem er falske positive. Vi kan beregne den præcision for denne model er som følger:

    • Præcision = TruePositives / (TruePositives + FalsePositives)
    • Præcision = 45 / (45 + 5)
    • Præcision = 45 / 50
    • Præcision = 0.,90

    i dette tilfælde, selvom modellen forudsagde langt færre eksempler som tilhørende minoritetsklassen, er forholdet mellem korrekte positive eksempler meget bedre.

    dette fremhæver, at selv om præcision er nyttig, fortæller den ikke hele historien. Det kommenterer ikke, hvor mange reelle positive klasseeksempler der blev forudsagt som tilhørende den negative klasse, såkaldte falske negativer.

    vil du komme i gang med Ubalanceklassificering?

    Tag mit gratis 7-dages e-mail-crashkursus nu (med prøvekode).,

    Klik for at tilmelde dig og også få en gratis PDF ebook version af kurset.

    Download Din GRATIS Mini-Kursus

    Præcision for Multi-Klassificering Klasse

    Præcision er ikke begrænset til binære klassificering problemer.i et ubalanceret klassificeringsproblem med mere end to klasser beregnes præcisionen som summen af sande positive på tværs af alle klasser divideret med summen af sande positive og falske positive på tværs af alle klasser.,

    • Præcision = Sum c i C TruePositives_c / Sum c i C (TruePositives_c + FalsePositives_c)

    For eksempel, at vi kan have en skæv multiklassefonde klassificering problem, hvor de fleste klasse er den negative klasse, men der er to positive mindretal klasser: klasse 1 og klasse 2. Præcision kan kvantificere forholdet mellem korrekte forudsigelser på tværs af begge positive klasser.,

    Overvej et datasæt med en 1:1:100 mindretal, at størstedelen klasse ratio, der er en 1:1 ratio for hver positiv klasse og en 1:100 forholdet til mindretal-klasser til de fleste klasse, og vi har 100 eksempler i hvert mindretal klasse, og 10.000 eksempler i de fleste klasse.

    en model fremsætter forudsigelser og forudsiger 70 eksempler for den første minoritetsklasse, hvor 50 er korrekte og 20 er forkerte. Det forudsiger 150 for anden klasse med 99 korrekte og 51 forkerte., Præcision kan beregnes for denne model som følger:

    Vi kan se, at præcisionsmetrikberegningsskalaerne, når vi øger antallet af minoritetsklasser.

    Beregn præcision med Scikit-Lær

    præcisionsresultatet kan beregnes ved hjælp af precision_score() scikit-learn-funktionen.for eksempel kan vi bruge denne funktion til at beregne præcision for scenarierne i det foregående afsnit.

    først, det tilfælde, hvor der er 100 positive til 10.000 negative eksempler, og en model forudsiger 90 sande positive og 30 falske positive. Det komplette eksempel er angivet nedenfor.,

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

    1
    Precision: 0.,750

    Næste, kan vi bruge den samme funktion til at beregne præcision for multiklassefonde problem med 1:1:100, hvor 100 eksempler i hvert mindretal klasse og 10.000 i de fleste klasse. En model forudsiger 50 sande positiver og 20 falske positiver for klasse 1 og 99 sande positiver og 51 falske positiver for klasse 2.,

    Når du bruger precision_score () – funktionen til klassificering af flere klasser, er det vigtigt at specificere minoritetsklasserne via argumentet “etiketter” og at udføre det “gennemsnitlige” argument til ‘mikro’ for at sikre, at beregningen udføres, som vi forventer.

    det komplette eksempel er angivet nedenfor.

    igen beregner kørsel af eksemplet præcisionen for det multiclass-eksempel, der matcher vores manuelle beregning.,

    1
    Præcision: 0.,677

    tilbagekaldelse for ubalanceret klassificering

    tilbagekaldelse er en metrisk, der kvantificerer antallet af korrekte positive forudsigelser foretaget ud af alle positive forudsigelser, der kunne have været foretaget.i modsætning til præcision, der kun kommenterer de korrekte positive forudsigelser ud af alle positive forudsigelser, giver tilbagekaldelse en indikation af ubesvarede positive forudsigelser.

    på denne måde giver tilbagekaldelse en vis forestilling om dækningen af den positive klasse.,

    for ubalanceret læring bruges tilbagekaldelse typisk til at måle dækningen af minoritetsklassen.

    — side 27, ubalanceret læring: fonde, algoritmer og applikationer, 2013.

    tilbagekaldelse for binær klassificering

    i et ubalanceret klassifikationsproblem med to klasser beregnes tilbagekaldelse som antallet af sande positive divideret med det samlede antal sande positive og falske negativer.

    • Genkald = TruePositives / (TruePositives + FalseNegatives)

    resultatet er en værdi mellem 0.,0 for ingen tilbagekaldelse og 1.0 for fuld eller perfekt tilbagekaldelse.

    lad os gøre denne beregning konkret med nogle eksempler.

    som i det foregående afsnit, overveje et datasæt med 1:100 mindretal til flertal ratio, med 100 mindretal eksempler og 10.000 flertal klasse eksempler.

    en model foretager forudsigelser og forudsiger 90 af de positive klasseforudsigelser korrekt og 10 forkert. Vi kan beregne tilbagekaldelsen for denne model som følger:

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

    denne model har en god tilbagekaldelse.

    tilbagekaldelse til klassificering i flere klasser

    tilbagekaldelse er ikke begrænset til binære klassificeringsproblemer.i et ubalanceret klassificeringsproblem med mere end to klasser beregnes tilbagekaldelse som summen af sande positive på tværs af alle klasser divideret med summen af sande positive og falske negativer på tværs af alle klasser.,

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

    Som i det foregående afsnit, kan du overveje et datasæt med en 1:1:100 mindretal, at størstedelen klasse ratio, der er en 1:1 ratio for hver positiv klasse og en 1:100 forholdet til mindretal-klasser til de fleste klasse, og vi har 100 eksempler i hvert mindretal klasse, og 10.000 eksempler i de fleste klasse.

    en model forudsiger 77 eksempler korrekt og 23 forkert for klasse 1, og 95 korrekt og fem forkert for klasse 2., Vi kan beregne tilbagekaldelse for denne model som følger:

    Beregn tilbagekaldelse med Scikit-Learn

    tilbagekaldelsesresultatet kan beregnes ved hjælp af recall_score() scikit-learn-funktionen.for eksempel kan vi bruge denne funktion til at beregne tilbagekaldelse for scenarierne ovenfor.

    først kan vi overveje tilfælde af en 1:100 ubalance med henholdsvis 100 og 10,000 eksempler, og en model forudsiger 90 ægte positive og 10 falske negativer.

    det komplette eksempel er angivet nedenfor.når vi kører eksemplet, kan vi se, at scoren matcher den manuelle beregning ovenfor.,

    1
    Genkald: 0.,900

    Vi kan også bruge recall_score() for skæv multiklassefonde klassificering problemer.

    i dette tilfælde har datasættet en ubalance på 1:1:100, med 100 i hver minoritetsklasse og 10.000 i majoritetsklassen. En model forudsiger 77 sande positiver og 23 falske negativer for klasse 1 og 95 sande positiver og fem falske negativer for klasse 2.

    det komplette eksempel er angivet nedenfor.

    igen beregner kørsel af eksemplet tilbagekaldelsen til det multiclass-eksempel, der matcher vores manuelle beregning.,

    1
    Genkald: 0.860

    Præcision vs., Recall for ubalanceret klassificering

    Du kan vælge at bruge præcision eller tilbagekaldelse på dit ubalancerede klassifikationsproblem.maksimering af præcision vil minimere antallet af falske positiver, mens maksimering af tilbagekaldelsen vil minimere antallet af falske negativer.

    • præcision: passende, når man minimerer falske positiver, er fokus.
    • Recall: passende, når man minimerer falske negativer, er fokus.

    Nogle gange ønsker vi fremragende forudsigelser af den positive klasse. Vi ønsker høj præcision og høj tilbagekaldelse.,

    dette kan være udfordrende, da ofte stigninger i tilbagekaldelse ofte kommer på bekostning af fald i præcision.

    i ubalancerede datasæt er målet at forbedre tilbagekaldelsen uden at skade præcisionen. Disse mål er imidlertid ofte modstridende, da for at øge TP for minoritetsklassen øges antallet af FP også ofte, hvilket resulterer i reduceret præcision.

    — side 55, Imbalanced Learning: Foundations, Algoritms, and Applications, 2013.,

    ikke desto mindre kan vi i stedet for at vælge det ene mål eller det andet vælge en ny metrisk, der kombinerer både præcision og tilbagekaldelse i en score.

    f-mål for ubalanceret klassificering

    Klassifikationsnøjagtighed anvendes i vid udstrækning, fordi det er et enkelt mål, der bruges til at opsummere modelydelsen.

    F-Measure giver en måde at kombinere både præcision og tilbagekaldelse i et enkelt mål, der fanger begge egenskaber.

    alene, hverken præcision eller tilbagekaldelse fortæller hele historien., Vi kan have fremragende præcision med frygtelig tilbagekaldelse, eller skiftevis, frygtelig præcision med fremragende tilbagekaldelse. F-measure giver en måde at udtrykke begge bekymringer med en enkelt score.

    Når præcision og tilbagekaldelse er beregnet for et binært eller multiclass klassifikationsproblem, kan de to scoringer kombineres til beregningen af F-foranstaltningen.

    det traditionelle f-mål beregnes som følger:

    • F-Measure = (2 * Precision * Recall)/(Precision + Recall)

    Dette er det harmoniske gennemsnit af de to fraktioner., Dette kaldes undertiden F-Score eller F1-Score og kan være den mest almindelige måling, der bruges på ubalancerede klassificeringsproblemer.

    … F1-foranstaltningen, der vægter præcision og husker lige, er den variant, der oftest bruges, når man lærer fra ubalancerede data.

    — side 27, ubalanceret læring: fonde, algoritmer og applikationer, 2013.

    ligesom præcision og tilbagekaldelse er en dårlig f-mål score 0,0 og en bedste eller perfekt F-mål score er 1.,0

    For eksempel, en perfekt præcision og recall score ville resultere i en perfekt F-Foranstaltning score:

    • F-Mål = (2 * Præcision * Tilbagekaldelse) / (Præcision + Recall)
    • F-Måling = (2 * 1.0 * 1.0) / (1.0 + 1.0)
    • F-Måling = (2 * 1.0) / 2.0
    • F-Mål = 1.0

    Lad os foretage denne beregning, beton med en bearbejdet eksempel.

    overvej et binært klassificeringsdatasæt med forholdet 1:100 mindretal til flertal, med 100 minoritetseksempler og 10.000 flertalsklasseeksempler.,

    overvej en model, der forudsiger 150 eksempler for den positive klasse, 95 er korrekte (sande positive), hvilket betyder, at fem blev savnet (falske negativer) og 55 er forkerte (falske positive).

    Vi kan beregne den præcision, som følger:

    • Præcision = TruePositives / (TruePositives + FalsePositives)
    • Præcision = 95 / (95 + 55)
    • Præcision = 0.633

    Vi kan beregne husker som følger:

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

    Dette viser, at modellen har dårlig præcision, men fremragende tilbagekaldelse.

    endelig kan vi beregne F-målingen som følger:

    Vi kan se, at de gode tilbagekaldelsesniveauer-ud den dårlige præcision, hvilket giver en okay eller rimelig f-mål score.

    Beregn f-Measure med Scikit-Learn

    f-measure score kan beregnes ved hjælp af f1_score() scikit-learn funktion.

    for eksempel bruger vi denne funktion til at beregne f-mål for scenariet ovenfor.,

    Dette er tilfældet med en 1:100 ubalance med henholdsvis 100 og 10,000 eksempler, og en model forudsiger 95 ægte positive, fem falske negativer og 55 falske positive.

    det komplette eksempel er angivet nedenfor.

    kørsel af eksemplet beregner f-foranstaltningen, der matcher vores manuelle beregning, inden for nogle mindre afrundingsfejl.,

    1
    F-Mål: 0.,760

    Yderligere Læsning

    Dette afsnit giver flere ressourcer om emnet, hvis du ønsker at gå dybere.

    Tutorials

    • Hvordan til at Beregne Præcision, Husker, F1, og Mere til Dyb Læring Modeller
    • Hvordan man Bruger ROC Kurver og Præcision-Husker Kurver for Klassificering i Python

    Papirer

    • En Systematisk Analyse Af Performance Foranstaltninger For Klassificering Opgaver, 2009.

    bøger

    • ubalanceret læring: fonde, algoritmer og applikationer, 2013.,
    • læring fra ubalancerede datasæt, 2018.

    API

    • sklearn.effektivitetsmålinger.precision_score API.
    • sklearn.effektivitetsmålinger.recall_score API.
    • sklearn.effektivitetsmålinger.f1_score API.

    artikler

    • forvirring Matri., .ikipedia.
    • præcision og genkaldelse, Wikipedia.
    • F1 score, .ikipedia.

    resum.

    i denne vejledning opdagede du, hvordan du beregner og udvikler en intuition til præcision og tilbagekaldelse til ubalanceret klassificering.,

    specifikt lærte du:

    • præcision kvantificerer antallet af positive klasseforudsigelser, der faktisk hører til den positive klasse.
    • tilbagekaldelse kvantificerer antallet af positive klasseforudsigelser foretaget ud af alle positive eksempler i datasættet.
    • F-Measure giver en enkelt score, der balancerer både bekymringerne for præcision og tilbagekaldelse i et tal.

    har du spørgsmål?
    stil dine spørgsmål i kommentarerne nedenfor, og jeg vil gøre mit bedste for at svare.,

    få styr på ubalanceret klassificering!

    udvikle ubalancerede læringsmodeller på få minutter

    …med bare et par linjer af python-kode

    Oplev, hvordan i min nye e-Bog:
    Skæv Klassificering med Python

    Det giver self-undersøgelse tutorials og end-to-end-projekter på:
    effektivitetsmålinger, Undersampling Metoder, SLOG, Tærskel, der Flytter, Sandsynlighed Kalibrering, Cost-Følsomme Algoritmer
    og meget mere…,

    Bringe Ligevægt, Klassificering Metoder til Din Machine Learning Projekter

    Se Hvad der er inden i

    Tweet Share Share

Share

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *