Hoe precisie, terugroeping en F-maat voor onevenwichtige classificatie te berekenen

Tweet Share Share

laatst bijgewerkt op 2 augustus 2020

Classificatienauwkeurigheid is het totale aantal correcte voorspellingen gedeeld door het totale aantal voorspellingen dat Voor een dataset is gemaakt.

als prestatiemaatstaf is nauwkeurigheid niet geschikt voor onevenwichtige classificatieproblemen.,

de belangrijkste reden is dat het overweldigende aantal voorbeelden uit de meerderheidsklasse (of klassen) het aantal voorbeelden in de minderheidsklasse zal overweldigen, wat betekent dat zelfs ondeugende modellen nauwkeurigheidsscores kunnen bereiken van 90 procent, of 99 procent, afhankelijk van hoe ernstig de onbalans van de klasse gebeurt te zijn.

een alternatief voor het gebruik van classificatienauwkeurigheid is het gebruik van precisie-en terugroepactrics.

in deze tutorial ontdek je hoe je een intuïtie voor precisie en recall voor onevenwichtige classificatie kunt berekenen en ontwikkelen.,

na het voltooien van deze tutorial, zult u weten:

  • precisie kwantificeert het aantal positieve klasse voorspellingen die daadwerkelijk behoren tot de positieve klasse.
  • Recall kwantificeert het aantal positieve klassevoorspellingen uit alle positieve voorbeelden in de dataset.
  • F-Measure levert een enkele score die zowel de zorgen van precisie als terugroeping in één getal balanceert.

Kick-start uw project met mijn nieuwe boek onevenwichtige classificatie met Python, inclusief stap-voor-stap tutorials en de Python broncode bestanden voor alle voorbeelden.,

laten we beginnen.

  • Update Jan / 2020: verbeterde taal over het doel van precisie en terugroeping. Vaste typefouten over wat precisie en recall proberen te minimaliseren (bedankt voor de opmerkingen!).
  • update Feb / 2020: vaste typo in variabele naam voor recall en f1.

hoe precisie, terugroeping en F-maat voor onevenwichtige classificatie te berekenen
Foto door Waldemar Merger, enkele rechten voorbehouden.,

Tutorial Overzicht

Deze handleiding is verdeeld in vijf delen; ze zijn:

  1. Verwarring Matrix voor Verkeerde Classificatie
  2. Nauwkeurigheid voor Verkeerde Classificatie
  3. Oproepen voor Verkeerde Classificatie
  4. Nauwkeurigheid vs. Oproepen voor Verkeerde Classificatie
  5. F-Maatregel voor Verkeerde Classificatie

Verwarring Matrix voor Onevenwichtigheid in de Indeling

Voordat we een duik in precisie en recall, het is belangrijk om de verwarring matrix.,

voor onevenwichtige classificatieproblemen wordt de meerderheidsklasse meestal aangeduid als de negatieve uitkomst (bijvoorbeeld “geen verandering” of “negatief testresultaat”), en de minderheidsklasse wordt meestal aangeduid als de positieve uitkomst (bijvoorbeeld “verandering” of “positief testresultaat”).

De verwarmingsmatrix geeft meer inzicht in niet alleen de prestaties van een voorspellend model, maar ook welke klassen correct worden voorspeld, welke onjuist, en welk type fouten worden gemaakt.,

De eenvoudigste verwarmingsmatrix is voor een classificatieprobleem met twee klassen, met negatieve (klasse 0) en positieve (klasse 1) klassen.

in dit type verwarmingsmatrix heeft elke cel in de tabel een specifieke en goed begrepen naam, samengevat als volgt:

De precisie-en terugroepactrics worden gedefinieerd in termen van de cellen in de verwarmingsmatrix, in het bijzonder termen als true positieven en false negatieven.

nu we de verwarmingsmatrix hebben opgefrist, laten we de precisiemetrie eens nader bekijken.,

precisie voor onevenwichtige classificatie

precisie is een metriek die het aantal correcte positieve voorspellingen kwantificeert.

precisie berekent daarom de nauwkeurigheid voor de minderheidsklasse.

Het wordt berekend als de verhouding van correct voorspelde positieve voorbeelden gedeeld door het totale aantal voorspelde positieve voorbeelden.

Precision evalueert de fractie van correct geclassificeerde instanties onder degenen geclassificeerd als positief …

— Page 52, Learning from Imbalanced Data Sets, 2018.,

precisie voor binaire classificatie

in een onevenwichtig classificatieprobleem met twee klassen wordt de precisie berekend als het aantal true posives gedeeld door het totale aantal true positieven en false positieven.

  • Precision = TruePositives/(TruePositives + FalsePositives)

het resultaat is een waarde tussen 0.0 voor geen precisie en 1.0 voor volledige Of perfecte precisie.

laten we deze berekening concreet maken met enkele voorbeelden.,

beschouw een dataset met een 1: 100 minority to majority ratio, met 100 minority examples en 10.000 majority class examples.

een model maakt voorspellingen en voorspelt 120 voorbeelden als behorend tot de minderheidsklasse, waarvan 90 correct en 30 onjuist zijn.

De precisie voor dit model wordt berekend als:

  • Precision = TruePositives / (TruePositives + FalsePositives)
  • Precision = 90 / (90 + 30)
  • Precision = 90/120
  • Precision = 0,75

het resultaat is een precisie van 0,75, wat een redelijke waarde is maar niet uitstaand.,

je kunt zien dat precisie simpelweg de verhouding is tussen de juiste positieve voorspellingen van alle positieve voorspellingen, of de nauwkeurigheid van minderheidsstandvoorspellingen.

beschouw dezelfde dataset, waarin een model 50 voorbeelden voorspelt die tot de minderheidsklasse behoren, waarvan 45 true positieven en vijf false positieven zijn. We kunnen de precisie voor dit model als volgt berekenen:

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

in dit geval, hoewel het model veel minder voorbeelden voorspelde als behorend tot de minderheidsklasse, is de verhouding van correcte positieve voorbeelden veel beter.

dit benadrukt dat hoewel precisie nuttig is, het niet het hele verhaal vertelt. Het geeft geen commentaar op hoeveel echte positieve klassenvoorbeelden werden voorspeld als behorend tot de negatieve klasse, zogenaamde valse negatieven.

wilt u beginnen met Onbalansclassificatie?

neem nu mijn gratis 7-daagse e-mail spoedcursus (met voorbeeldcode).,

Klik om u aan te melden en ontvang ook een gratis PDF Ebook versie van de cursus.

download uw gratis minicursus

precisie voor classificatie in meerdere klassen

precisie is niet beperkt tot binaire classificatieproblemen.

in een onevenwichtig classificatieprobleem met meer dan twee klassen, wordt de precisie berekend als de som van echte positieven over alle klassen gedeeld door de som van echte positieven en valse positieven over alle klassen.,

  • Precision = Sum c in C TruePositives_c / Sum c in C (TruePositives_c + FalsePositives_c)

bijvoorbeeld, we kunnen een onevenwichtig multiclass classificatieprobleem hebben waar de meerderheidsklasse de negatieve klasse is, maar er zijn twee positieve minderheidsklassen: klasse 1 en klasse 2. Precisie kan de verhouding van correcte voorspellingen over beide positieve klassen kwantificeren.,

beschouw een dataset met een 1:1: 100 minority to majority class ratio, dat is een 1:1 ratio voor elke positieve klasse en een 1:100 ratio voor de minority Class naar de majority class, en we hebben 100 voorbeelden in elke minority class, en 10.000 voorbeelden in de majority class.

een model maakt voorspellingen en voorspelt 70 voorbeelden voor de eerste minderheidsklasse, waarbij 50 correct zijn en 20 onjuist. Het voorspelt 150 voor de tweede klasse met 99 correct en 51 incorrect., Precisie kan voor dit model als volgt worden berekend:

we kunnen zien dat de precisie-metrische berekeningsschalen als we het aantal minderheidsklassen verhogen.

Bereken precisie met Scikit-Learn

De precisiescore kan worden berekend met behulp van de precision_score () scikit-learn functie.

bijvoorbeeld, we kunnen deze functie gebruiken om precisie te berekenen voor de scenario ‘ s in de vorige sectie.

ten eerste, het geval waarin er 100 positieve tot 10.000 negatieve voorbeelden zijn, en een model voorspelt 90 true positieven en 30 false positieven. Het volledige voorbeeld staat hieronder.,

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

1
Precision: 0.,750

vervolgens kunnen we dezelfde functie gebruiken om de precisie te berekenen voor het multiclass probleem met 1:1:100, met 100 voorbeelden in elke minderheidsklasse en 10.000 in de meerderheidsklasse. Een model voorspelt 50 true positieven en 20 false positieven voor klasse 1 en 99 true positieven en 51 false positieven voor klasse 2.,

bij het gebruik van de functie precision_score() voor multiclass classificatie, is het belangrijk om de minderheidsklassen te specificeren via het argument “labels” en om het argument “average” uit te voeren op “micro” om ervoor te zorgen dat de berekening wordt uitgevoerd zoals we verwachten.

het volledige voorbeeld wordt hieronder weergegeven.

nogmaals, het uitvoeren van het voorbeeld berekent de precisie voor het multiclass voorbeeld dat overeenkomt met onze handmatige berekening.,

1
– Precisie: 0.,677

Recall for Imbalanced Classification

Recall is een metriek die het aantal correcte positieve voorspellingen kwantificeert die gemaakt zijn uit alle positieve voorspellingen die gedaan hadden kunnen worden.

In tegenstelling tot precisie die alleen commentaar geeft op de juiste positieve voorspellingen van alle positieve voorspellingen, geeft recall een indicatie van gemiste positieve voorspellingen.

op deze manier geeft recall enige notie van de dekking van de positieve klasse.,

voor onevenwichtig leren wordt recall meestal gebruikt om de dekking van de minderheidsklasse te meten.

– Page 27, Imbalanced Learning: Foundations, Algorithms, and Applications, 2013.

Recall voor binaire classificatie

In een onevenwichtig classificatieprobleem met twee klassen wordt recall berekend als het aantal true positieven gedeeld door het totale aantal true positieven en false negatieven.

  • Recall = TruePositives/(TruePositives + Falsenegatieven)

het resultaat is een waarde tussen 0.,0 voor geen recall en 1.0 voor volledige Of perfecte recall.

laten we deze berekening concreet maken met enkele voorbeelden.

zoals in de vorige paragraaf, overweeg een dataset met 1: 100 minority to majority ratio, met 100 minority examples en 10.000 majority class examples.

een model maakt voorspellingen en voorspelt 90 van de positieve klassevoorspellingen correct en 10 onjuist. We kunnen de recall voor dit model als volgt berekenen:

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

dit model heeft een goede recall.

Recall voor multi-Class classificatie

Recall is niet beperkt tot binaire classificatieproblemen.

in een onevenwichtig classificatieprobleem met meer dan twee klassen, wordt recall berekend als de som van echte positieven over alle klassen gedeeld door de som van echte positieven en valse negatieven over alle klassen.,

  • Recall = Sum c in C TruePositives_c / Sum c in C (TruePositives_c + FalseNegatives_c)

zoals in de vorige paragraaf, beschouw een dataset met een 1:1:100 minority to majority class ratio, dat is een 1:1 ratio voor elke positieve klasse en een 1:100 ratio voor de minority Class naar de majority class, en we hebben 100 voorbeelden in elke minority class, en 10.000 voorbeelden in de majority class..

een model voorspelt 77 voorbeelden correct en 23 onjuist Voor klasse 1, en 95 correct en 5 onjuist voor klasse 2., We kunnen recall berekenen voor dit model als volgt:

Bereken Recall met Scikit-Learn

De recall-score kan worden berekend met behulp van de recall_score() scikit-learn functie.

bijvoorbeeld, we kunnen deze functie gebruiken om recall te berekenen voor de bovenstaande scenario ‘ s.

ten eerste kunnen we het geval van een 1:100 onbalans met respectievelijk 100 en 10.000 voorbeelden beschouwen, en een model voorspelt 90 true positieven en 10 false negatieven.

het volledige voorbeeld wordt hieronder weergegeven.

aan de hand van het voorbeeld kunnen we zien dat de score overeenkomt met de handmatige berekening hierboven.,

1
Oproepen: 0.,900

We kunnen ook de recall_score() gebruiken voor onevenwichtige multiclass classificatieproblemen.

In dit geval heeft de dataset een 1:1:100 onbalans, met 100 in elke minderheidsklasse en 10.000 in de meerderheidsklasse. Een model voorspelt 77 echte positieven en 23 valse negatieven voor klasse 1 en 95 echte positieven en vijf valse negatieven voor klasse 2.

het volledige voorbeeld wordt hieronder weergegeven.

opnieuw berekent het uitvoeren van het voorbeeld de recall voor het multiclass voorbeeld dat overeenkomt met onze handmatige berekening.,

1
Oproepen: 0.860

Precisie versus, Recall voor onevenwichtige classificatie

u kunt beslissen om precisie te gebruiken of recall voor uw onevenwichtige classificatie probleem.

Het Maximaliseren van de precisie zal het aantal false positieven minimaliseren, terwijl het maximaliseren van de recall het aantal false negatieven zal minimaliseren.

  • precisie: passend bij het minimaliseren van false positieven is de focus.
  • Recall: passend bij het minimaliseren van valse negatieven is de focus.

soms willen we uitstekende voorspellingen van de positieve klasse. We willen hoge precisie en hoge recall.,

Dit kan een uitdaging zijn, omdat een toename van de recall vaak ten koste gaat van een afname van de precisie.

In onevenwichtige datasets is het doel om recall te verbeteren zonder de precisie te schaden. Deze doelstellingen zijn echter vaak tegenstrijdig, omdat om de TP voor de minderheidsklasse te verhogen, het aantal FP ook vaak wordt verhoogd, wat resulteert in een verminderde precisie.

— Page 55, Imbalanced Learning: Foundations, Algorithms, and Applications, 2013.,

niettemin kunnen we, in plaats van de ene maat of de andere te kiezen, een nieuwe metriek kiezen die zowel precisie als recall combineert tot één partituur.

F-maat voor onevenwichtige classificatie

Classificatienauwkeurigheid wordt veel gebruikt omdat het één enkele maat is die wordt gebruikt om modelprestaties samen te vatten.

F-Measure biedt een manier om zowel precisie als recall te combineren in een enkele maat die beide eigenschappen vangt.

alleen, noch precisie of recall vertelt het hele verhaal., We kunnen uitstekende precisie hebben met een verschrikkelijke herinnering, of afwisselend, verschrikkelijke precisie met een uitstekende herinnering. F-measure biedt een manier om beide zorgen uit te drukken met een enkele score.

zodra de precisie en terugroeping zijn berekend voor een binair of multiclass classificatieprobleem, kunnen de twee scores worden gecombineerd in de berekening van de F-maat.

de traditionele F-maat wordt als volgt berekend:

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

Dit is het harmonische gemiddelde van de twee fracties., Dit wordt soms de F-Score of de F1-Score genoemd en kan de meest voorkomende maatstaf zijn die wordt gebruikt bij onevenwichtige classificatieproblemen.

… De F1-maat, die precisie en recall gelijk weegt, is de variant die het vaakst wordt gebruikt bij het leren van onevenwichtige gegevens.

– Page 27, Imbalanced Learning: Foundations, Algorithms, and Applications, 2013.

net als precisie en recall is een slechte F-Maatscore 0,0 en een beste Of perfecte f-Maatscore is 1.,0

bijvoorbeeld, een perfecte precisie en recall score zou resulteren in een perfecte f-maat score:

  • F-Maat = (2 * precisie * Recall) / (Precision + Recall)
  • F-Maat = (2 * 1.0 * 1.0) / (1.0 + 1.0)
  • F-Maatregel = (2 * 1.0) / 2.0
  • F-Measure = 1.0

laten we deze berekening concreet maken met een bewerkt voorbeeld.

beschouw een binaire classificatiedataset met 1: 100 minority to majority ratio, met 100 minority examples en 10.000 majority class examples.,

overweeg een model dat 150 voorbeelden voorspelt voor de positieve klasse, 95 correct zijn (true positieven), wat betekent dat vijf werden gemist (false negatieven) en 55 onjuist zijn (false positieven).

We kunnen de precisie als volgt berekenen:

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

We kunnen de recall als volgt berekenen:

  • Recall = TruePositives/(TruePositives + Falsenegatieven)
  • Recall = 95 / (95 + 5)
  • Recall = 0.,95

Dit toont aan dat het model een slechte precisie heeft, maar een uitstekende recall.

ten slotte kunnen we de F-maat als volgt berekenen:

We kunnen zien dat de goede recall levels-out de slechte precisie, wat een okay of redelijke F-maat score geeft.

Bereken F-Measure met Scikit-Learn

De F-measure score kan worden berekend met behulp van de f1_score () scikit-learn functie.

bijvoorbeeld, we gebruiken deze functie om F-maat te berekenen voor het bovenstaande scenario.,

Dit is het geval van een 1: 100 onbalans met respectievelijk 100 en 10.000 voorbeelden, en een model voorspelt 95 true positieven, vijf false negatieven en 55 false positieven.

het volledige voorbeeld wordt hieronder weergegeven.

het uitvoeren van het voorbeeld berekent de F-maat, die overeenkomt met onze handmatige berekening, binnen enkele kleine afrondingsfouten.,

1
F-Maatregel: 0.,760

verder lezen

Deze sectie biedt meer bronnen over het onderwerp als u dieper wilt gaan.

Tutorials

  • How to Calculate Precision, Recall, F1, and More for Deep Learning Models
  • How To Use ROC Curves and Precision-Recall Curves for Classification in Python

Papers

  • A Systematic Analysis Of Performance Measures For Classification Tasks, 2009.

Books

  • Imbalanced Learning: Foundations, Algorithms, and Applications, 2013.,
  • leren van onevenwichtige datasets, 2018.

API

  • sklearn.metriek.precision_score API.
  • sklearn.metriek.recall_score API.
  • sklearn.metriek.F1_SCORE API.

artikelen

  • Verwarmingsmatrix, Wikipedia.
  • Precision and recall, Wikipedia.
  • F1 score, Wikipedia.

samenvatting

in deze tutorial ontdekte u hoe u een intuïtie voor precisie en recall voor onevenwichtige classificatie kunt berekenen en ontwikkelen.,

in het bijzonder leerde u:

  • precisie kwantificeert het aantal positieve klassevoorspellingen die daadwerkelijk tot de positieve klasse behoren.
  • Recall kwantificeert het aantal positieve klassevoorspellingen uit alle positieve voorbeelden in de dataset.
  • F-Measure levert een enkele score die zowel de zorgen van precisie als terugroeping in één getal balanceert.

heeft u vragen?
Stel uw vragen in de opmerkingen hieronder en Ik zal mijn best doen om te beantwoorden.,

grip krijgen op onevenwichtige classificatie!

ontwikkel onevenwichtige leermodellen in minuten

…met slechts een paar regels python code

ontdek hoe in mijn nieuwe Ebook:
onevenwichtige classificatie met Python

Het biedt zelfstudie tutorials en end-to-end projecten op:
Performance Metrics, Undersampling Methods, SMOTE, Threshold Moving, Probability Calibration, Cost-Sensitive Algorithms
en nog veel meer…,

breng onevenwichtige classificatiemethoden naar uw Machine Learning-projecten

bekijk wat er in

Tweet Share Share

Share

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *