Jak Vypočítat Precision, Recall a F-Measure pro Nevyvážené Třídění

Tweet share Podělte

Naposledy Aktualizován dne 2. srpna roku 2020

přesnost Klasifikace je celkový počet správných předpovědí děleno celkový počet předpovědi pro dataset.

jako výkonnostní opatření je přesnost nevhodná pro nevyvážené klasifikační problémy.,

hlavním důvodem je, že drtivá většina příkladů z většiny třídy (nebo tříd) se přemoci počet příkladů v menšině třídy, což znamená, že i nezkušený modely mohou dosáhnout přesnosti skóre 90% nebo 99%, v závislosti na tom, jak těžké třídy nerovnováha se stane být.

alternativou k použití klasifikační přesnosti je použití metrik přesnosti a vyvolání.

v tomto tutoriálu zjistíte, jak vypočítat a rozvíjet intuici pro přesnost a odvolání pro nevyváženou klasifikaci.,

po dokončení tohoto tutoriálu budete vědět:

  • přesnost kvantifikuje počet předpovědí pozitivní třídy, které skutečně patří do pozitivní třídy.
  • Recall kvantifikuje počet předpovědí pozitivní třídy ze všech pozitivních příkladů v datovém souboru.
  • F-Measure poskytuje jediné skóre, které vyrovnává jak obavy z přesnosti, tak vyvolání V jednom čísle.

Kick-start svůj projekt s mou novou knihu nevyvážené klasifikace s Python, včetně krok za krokem tutoriály a soubory zdrojového kódu Python pro všechny příklady.,

začněme.

  • aktualizace Leden / 2020: vylepšený jazyk o cíli přesnosti a odvolání. Opraveny překlepy o tom, jakou přesnost a odvolání se snaží minimalizovat (díky za komentáře!).
  • Update Feb/2020: Fixed typo in variable name for recall and f1.

Jak Vypočítat Precision, Recall a F-Measure pro Nevyvážené Třídění
Foto Waldemar Fúze, některá práva jsou vyhrazena.,

Návod Přehled

Tento výukový program je rozdělen do pěti částí; jsou to:

  1. Confusion Matrix pro Nevyvážené Třídění
  2. Přesnost pro Nevyvážené Třídění
  3. Připomeňme si, pro Nevyvážené Třídění
  4. Přesnost vs. Připomeňme, pro Nevyvážené Třídění
  5. F-Opatření pro Nevyvážené Třídění

Confusion Matrix pro Nevyvážené Třídění

předtím, Než jsme se ponořit do precision a recall, je důležité, aby přezkoumala confusion matrix.,

Pro nevyvážené třídění problémy, většina třídy je obvykle odkazoval se na jako negativní výsledek (např. jako „žádná změna“ nebo „negativní výsledek testu“), a minoritní třídy je obvykle odkazoval se na jako pozitivní výsledek (např. „změna“ nebo „pozitivní výsledek testu“).

zmatek matrix poskytuje větší vhled do ne pouze výkon prediktivní model, ale také, které kategorie jsou správně předpověděl, který nesprávně, a jaký typ chyby jsou vyrobeny.,

nejjednodušší matrice záměny je pro klasifikační problém dvou tříd, s negativními (třída 0) a pozitivními (třída 1) třídami.

V tomto typu záměny matice, každá buňka v tabulce má konkrétní a srozumitelný název, shrnout takto:

precision a recall metriky jsou definovány z hlediska buněk ve zmatku matrix, konkrétně pojmy jako pravda, pozitivních a falešně negativních výsledků.

Nyní, když jsme se oprášili maticí zmatku, podívejme se blíže na přesnou metriku.,

přesnost pro nevyváženou klasifikaci

přesnost je metrika, která kvantifikuje počet správných pozitivních předpovědí.

přesnost proto vypočítává přesnost pro minoritní třídu.

vypočítá se jako poměr správně předpovězených pozitivních příkladů dělených celkovým počtem předpokládaných pozitivních příkladů.

Přesné hodnotí podíl správně klasifikovaných instancí mezi ty, klasifikovány jako pozitivní …

— Page 52, Učení se z Nevyvážených Datových souborů, 2018.,

Přesnost pro Binární Klasifikaci

V nevyvážený klasifikace problém se dvěma třídami, přesnost je vypočtena jako počet true pozitivní děleno celkový počet true positives a false positives.

  • Precision = TruePositives/(TruePositives + FalsePositives)

výsledkem je hodnota mezi 0,0 bez přesnosti a 1,0 pro plnou nebo dokonalou přesnost.

udělejme tento výpočet konkrétními příklady.,

zvažte datový soubor s poměrem menšin k většině 1: 100, se 100 příklady menšin a 10 000 příklady většinové třídy.

model předpovídá a předpovídá 120 příkladů, které patří do třídy menšin, z nichž 90 je správných a 30 je nesprávných.

přesnost pro tento model se vypočítá jako:

  • Přesnost = TruePositives / (TruePositives + FalsePositives)
  • Přesnost = 90 / (90 + 30)
  • Přesnost = 90 / 120
  • Přesnost = 0.75

výsledkem je přesnost 0,75, což je rozumná hodnota, ale ne vynikající.,

můžete vidět, že přesnost je prostě poměr správných pozitivních předpovědí ze všech pozitivních předpovědí nebo přesnost předpovědí menšinové třídy.

zvažte stejný datový soubor, kde model předpovídá 50 příkladů patřících do menšinové třídy,z nichž 45 jsou pravdivá pozitiva a pět z nich jsou falešně pozitivní. Můžeme vypočítat přesnost pro tento model takto:

  • Přesnost = TruePositives / (TruePositives + FalsePositives)
  • Přesnost = 45 / (45 + 5)
  • Přesnost = 45 / 50
  • Přesnost = 0.,90

v tomto případě, i když model předpovídal mnohem méně příkladů jako příslušnost k menšinové třídě, poměr správných pozitivních příkladů je mnohem lepší.

to zdůrazňuje, že i když je přesnost užitečná, neříká celý příběh. Nekomentuje, kolik skutečných příkladů pozitivní třídy bylo předpovězeno jako patřící do negativní třídy, tzv.

chcete začít s klasifikací nerovnováhy?

Vezměte si zdarma 7denní e-mailový crash kurz nyní (se vzorovým kódem).,

kliknutím se zaregistrujete a získáte také bezplatnou verzi PDF Ebook kurzu.

Stáhněte si ZDARMA Mini-Kurz,

Přesnost pro Multi-Třídy Klasifikace

Přesnost není omezena na binární klasifikace problémy.

V nevyvážený, problém klasifikace s více než dvě třídy, přesnost se vypočítá jako součet správných pozitivních výsledků ve všech třídách rozděleny podle součtu pravda pozitivních a falešně pozitivních výsledků všech tříd.,

  • Přesnost = Součet c v C TruePositives_c / Součet c v C (TruePositives_c + FalsePositives_c)

například můžeme mít nevyvážený multiclass klasifikace problém, kde většina třídy je negativní třídy, ale jsou tam dva pozitivní menšinových tříd: třída 1 a třída 2. Přesnost může kvantifikovat poměr správných předpovědí v obou pozitivních třídách.,

Zvážit dataset 1:1:100 menšiny do majoritní třídy poměr, je poměr 1:1 pro každé kladné třída a poměr 1:100 pro menšinové třídy, aby většinu třídy, a máme 100 příkladů v každé menšinové třídy, a 10 000 příkladů, ve většině třídy.

model předpovídá a předpovídá 70 příkladů pro první menšinovou třídu, kde je 50 správných a 20 nesprávných. Předpovídá 150 pro druhou třídu s 99 správnými a 51 nesprávnými., Přesnost lze pro tento model vypočítat takto:

vidíme, že přesné metrické výpočtové stupnice při zvyšování počtu menšinových tříd.

Vypočítejte přesnost pomocí Scikit-Learn

přesné skóre lze vypočítat pomocí funkce precision_score() scikit-learn.

například tuto funkci můžeme použít k výpočtu přesnosti scénářů v předchozí části.

nejprve případ, kdy existuje 100 pozitivních až 10 000 negativních příkladů, a model předpovídá 90 skutečných pozitiv a 30 falešných pozitiv. Úplný příklad je uveden níže.,

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

1
Precision: 0.,750

Next, můžeme použít stejnou funkci pro výpočet přesnosti pro multiclass problém s 1:1:100, s 100 příkladů v každé menšině, třídu a 10.000 ve většině třídy. Model předpovídá 50 skutečných pozitiv a 20 falešných pozitiv pro třídu 1 a 99 true positives a 51 falešných pozitiv pro třídu 2.,

Při použití precision_score() funkce pro multiclass klasifikace, je důležité určit menšinových tříd pomocí „štítků“ argument, a provádět nastavení „průměrné“ argument „mikro“, aby zajistily, výpočet se provádí, jak očekáváme.

úplný příklad je uveden níže.

spuštění příkladu opět vypočítá přesnost pro příklad multiclass odpovídající našemu ručnému výpočtu.,

1
Přesnost: 0.,677

Připomeňme si, pro Nevyvážené Třídění

vzpomeňte si je metrika, která počítá počet správných pozitivní předpovědi z z všechny pozitivní předpovědi, které byly učiněny.

Na rozdíl od přesnosti, která pouze komentuje správné pozitivní předpovědi ze všech pozitivních předpovědí, recall poskytuje indikaci zmeškaných pozitivních předpovědí.

tímto způsobem recall poskytuje určitou představu o pokrytí pozitivní třídy.,

pro nevyvážené učení se recall obvykle používá k měření pokrytí menšinové třídy.

— Strana 27, nevyvážené učení: základy, algoritmy a aplikace, 2013.

Připomeňme si, pro Binární Klasifikaci

V nevyvážený klasifikace problém se dvěma třídami, připomeňme, je vypočtena jako počet true pozitivní děleno celkový počet pravda pozitivních a falešně negativních výsledků.

  • Recall = TruePositives/(TruePositives + FalseNegatives)

výsledkem je hodnota mezi 0.,0 bez odvolání a 1.0 pro úplné nebo dokonalé odvolání.

udělejme tento výpočet konkrétními příklady.

stejně jako v předchozí části zvažte datový soubor s poměrem menšin k většině 1:100, se 100 příklady menšin a 10 000 příklady většinové třídy.

model dělá předpovědi a předpovídá 90 předpovědí pozitivní třídy správně a 10 nesprávně. Můžeme vypočítat připomeňme si pro tento model takto:

  • Připomeňme = TruePositives / (TruePositives + FalseNegatives)
  • Připomeňme si,= 90 / (90 + 10)
  • Připomeňme = 90 / 100
  • Připomeňme = 0.,9

tento model má dobré stažení.

vyvolání pro klasifikaci více tříd

vyvolání není omezeno na problémy s binárními klasifikacemi.

V nevyvážený, problém klasifikace s více než dvě třídy, připomeňme, je vypočtena jako součet správných pozitivních výsledků ve všech třídách rozděleny podle součtu pravda pozitivních a falešně negativních výsledků ve všech třídách.,

  • Připomeňme = Součet c v C TruePositives_c / Součet c v C (TruePositives_c + FalseNegatives_c)

stejně Jako v předchozí části, zvažte dataset 1:1:100 menšiny do majoritní třídy poměr, je poměr 1:1 pro každé kladné třída a poměr 1:100 pro menšinové třídy, aby většinu třídy, a máme 100 příkladů v každé menšinové třídy, a 10000 příklady ve většině třídy.

model předpovídá 77 příkladů správně a 23 nesprávně pro třídu 1 a 95 správně a pět nesprávně pro třídu 2., Pro tento model můžeme vypočítat odvolání takto:

vypočítat odvolání pomocí Scikit-Learn

recall skóre lze vypočítat pomocí funkce recall_score() scikit-learn.

například tuto funkci můžeme použít k výpočtu odvolání pro výše uvedené scénáře.

nejprve můžeme zvážit případ nerovnováhy 1: 100 se 100 a 10 000 příklady a model předpovídá 90 skutečných pozitiv a 10 falešných negativů.

úplný příklad je uveden níže.

při spuštění příkladu vidíme, že skóre odpovídá výše uvedenému manuálnímu výpočtu.,

1
Připomeňme: 0.,900

můžeme také použít recall_score() pro nevyvážený multiclass klasifikace problémy.

v tomto případě má datový soubor nerovnováhu 1: 1: 100, přičemž 100 v každé menšinové třídě a 10 000 ve většinové třídě. Model předpovídá 77 skutečných pozitiv a 23 falešných negativů pro třídu 1 a 95 skutečných pozitiv a pět falešných negativů pro třídu 2.

úplný příklad je uveden níže.

Opět platí, že spuštění příkladu vypočítá odvolání pro příklad multiclass odpovídající našemu ručnému výpočtu.,

1
Připomeňme si: 0.860

Přesnost vs., Připomeňme pro nevyváženou klasifikaci

můžete se rozhodnout použít přesnost nebo vyvolat problém nevyvážené klasifikace.

maximalizace přesnosti minimalizuje počet falešných pozitiv, zatímco maximalizace vyvolání minimalizuje počet falešných negativů.

  • přesnost: vhodné při minimalizaci falešných pozitiv je zaměření.
  • Recall: vhodné při minimalizaci falešných negativů je zaměření.

někdy chceme vynikající předpovědi pozitivní třídy. Chceme vysokou přesnost a vysoké odvolání.,

to může být náročné, protože často dochází k nárůstu odvolání na úkor snížení přesnosti.

v nevyvážených datových sadách je cílem zlepšit odvolání bez poškození přesnosti. Tyto cíle jsou však často protichůdné, protože za účelem zvýšení TP pro menšinovou třídu se také často zvyšuje počet FP, což vede ke snížení přesnosti.

– Strana 55, nevyvážené učení: základy, algoritmy a aplikace, 2013.,

nicméně místo výběru jednoho nebo druhého opatření si můžeme vybrat novou metriku, která kombinuje přesnost i vyvolání do jednoho skóre.

F-opatření pro nevyváženou klasifikaci

klasifikační přesnost je široce používána, protože se jedná o jedno jediné opatření používané k shrnutí výkonu modelu.

F-Measure poskytuje způsob, jak kombinovat přesnost i vyvolání do jediného opatření, které zachycuje obě vlastnosti.

sám, ani precision nebo recall vypráví celý příběh., Můžeme mít vynikající přesnost s hrozným odvoláním, nebo střídavě, hrozná přesnost s vynikajícím odvoláním. F-opatření poskytuje způsob, jak vyjádřit obě obavy s jediným skóre.

jakmile byla přesnost a vyvolání vypočtena pro problém klasifikace binárních nebo multiclass, lze obě skóre kombinovat do výpočtu F-opatření.

tradiční F měření se vypočte takto:

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

Toto je průměrem ze dvou frakcí., To se někdy nazývá F-Score nebo F1-Score a může být nejčastější metrikou používanou při nevyvážených klasifikačních problémech.

… měření F1, které váží přesnost a připomíná stejně, je variantou, která se nejčastěji používá při učení z nevyvážených dat.

— Strana 27, nevyvážené učení: základy, algoritmy a aplikace, 2013.

stejně jako precision and recall, špatné skóre F-Measure je 0.0 a nejlepší nebo dokonalé skóre F-Measure je 1.,0

například, perfektní přesnost a připomeňme, skóre by mělo za následek perfektní F-Měření skóre:

  • F-Measure = (2 * Precision * Recall) / (Precision + Recall)
  • F-Měření = (2 * 1.0 * 1.0) / (1.0 + 1.0)
  • F-Měření = (2 * 1.0) / 2.0
  • F-Measure = 1.0

Pojďme udělat tento výpočet betonu s pracoval například.

zvažte binární klasifikační datový soubor s poměrem menšin k většině 1: 100, s příklady menšin 100 a příklady většinové třídy 10,000.,

Zvažte model, který předpovídá, 150 příklady pro pozitivní třídy, 95 jsou správné (true positives), což znamená pět minul (falešně negativní) a 55 jsou nesprávné (falešně pozitivní výsledky).

můžeme vypočítat přesnost takto:

  • Přesnost = TruePositives / (TruePositives + FalsePositives)
  • Přesnost = 95 / (95 + 55)
  • Přesnost = 0.633

můžeme vypočítat připomeňme takto:

  • Připomeňme = TruePositives / (TruePositives + FalseNegatives)
  • Připomeňme si,= 95 / (95 + 5)
  • Připomeňme = 0.,95

to ukazuje, že model má špatnou přesnost, ale vynikající stažení.

nakonec můžeme vypočítat F-opatření takto:

vidíme, že dobré úrovně odvolání-mimo špatnou přesnost, což dává dobré nebo rozumné skóre F-měření.

Vypočítejte F-měření pomocí Scikit-Learn

skóre F-measure lze vypočítat pomocí funkce f1_score () scikit-learn.

například tuto funkci používáme k výpočtu F-opatření pro výše uvedený scénář.,

toto je případ nerovnováhy 1:100 se 100 a 10 000 příklady a model předpovídá 95 skutečných pozitiv, pět falešných negativů a 55 falešných pozitiv.

úplný příklad je uveden níže.

spuštění příkladu vypočítá F-opatření, odpovídající našemu manuálnímu výpočtu, v rámci některých drobných chyb zaokrouhlení.,

1
F-Measure: 0.,760

Další Čtení

Tento oddíl poskytuje více prostředků na toto téma, pokud máte zájem jít hlouběji.

Návody

  • Jak Vypočítat Precision, Recall, F1, a Více pro Hluboké Učení Modely
  • Jak Používat ROC Křivky a Precision-Recall Křivky pro Klasifikaci v Pythonu

Dokumenty

  • Systematické Analýzy Plnění Opatření Pro Klasifikaci Úkolů, 2009.

knihy

  • nevyvážené učení: základy, algoritmy a aplikace, 2013.,
  • učení se z nevyvážených datových sad, 2018.

API

  • sklearn.metrik.precision_score API.
  • sklearn.metrik.recall_score API.
  • sklearn.metrik.F1_SCORE API.

články

  • Matrix zmatenosti, Wikipedia.
  • Precision and recall, Wikipedia.
  • F1 score, Wikipedia.

shrnutí

v tomto tutoriálu jste zjistili, jak vypočítat a vyvinout intuici pro přesnost a odvolání pro nevyváženou klasifikaci.,

konkrétně jste se dozvěděli:

  • přesnost kvantifikuje počet předpovědí pozitivní třídy, které skutečně patří do pozitivní třídy.
  • Recall kvantifikuje počet předpovědí pozitivní třídy ze všech pozitivních příkladů v datovém souboru.
  • F-Measure poskytuje jediné skóre, které vyrovnává jak obavy z přesnosti, tak vyvolání V jednom čísle.

máte nějaké dotazy?
Ptejte se v komentářích níže a já se budu snažit odpovědět.,

získejte rukojeť na nevyvážené klasifikaci!

vyvinout nevyvážené modely učení v minutách

…s jen pár řádků v pythonu kód,

Zjistit, jak můj nový Ebook:
Nevyvážená Klasifikace s Python

To poskytuje self-studium cvičení a end-to-end projektů na:
Metriky Výkonu, Undersampling Metody, UDEŘIL, Práh Pohybu, Pravděpodobnost, Kalibrace, Nákladově Citlivé Algoritmy
a mnohem více…,

Přineste nevyvážené klasifikační metody do projektů strojového učení

podívejte se, co je uvnitř

Tweet Share

Share

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *