Hogyan kell kiszámítani a pontosság, visszahívás, és F-intézkedés kiegyensúlyozatlan besorolás

Tweet Share

Utoljára frissítve augusztus 2, 2020

osztályozási pontosság az összes helyes előrejelzések osztva a teljes számú előrejelzések készült egy adatbázisba.

teljesítménymérésként a pontosság nem megfelelő a kiegyensúlyozatlan osztályozási problémákra.,

A fő oka az, hogy a túlnyomó számú példa a többség az osztály (vagy osztályok) elborít a száma példák a kisebbségi osztály, ami azt jelenti, hogy még unskillful modell lehet elérni pontosság pontszámok 90% – os, vagy 99% – a, attól függően, hogy milyen súlyos az osztály egyensúly lesz.

a besorolás pontosságának alternatívája a precíziós és visszahívási metrikák használata.

ebben a bemutatóban, akkor rájössz, hogyan kell kiszámítani, és dolgozzon ki egy intuíció precíziós és visszahívás kiegyensúlyozatlan osztályozás.,

a bemutató befejezése után tudni fogja:

  • a pontosság számszerűsíti a pozitív osztály-előrejelzések számát, amelyek valójában a pozitív osztályhoz tartoznak.
  • a Recall számszerűsíti az adatkészletben szereplő összes pozitív példából származó pozitív osztály-előrejelzések számát.
  • F-Measure biztosít egyetlen pontszámot, amely egyensúlyba hozza mind a pontosság, mind a visszahívás aggályait egy számban.

Kick-start your project with my new book of Python, including step-by-step tutorials and the Python source code files for all examples.,

kezdjük.

  • frissítés Jan / 2020: továbbfejlesztett nyelv a cél a pontosság és a visszahívás. Fix helyesírási arról, hogy milyen precizitás és visszahívás igyekeznek minimalizálni (köszönöm a megjegyzéseket!).
  • frissítés Február / 2020: Fix elírás változó név visszahívás és f1.

a pontosság, a visszahívás és az F-intézkedés kiszámítása a kiegyensúlyozatlan besoroláshoz
fotó: Waldemar egyesülés, néhány jog fenntartva.,

Bemutató Áttekintés

Ez a bemutató öt részre osztható; ezek a következők:

  1. Zavart Mátrix a Kiegyensúlyozatlan Besorolás
  2. Precíziós a Kiegyensúlyozatlan Besorolás
  3. Emlékszem, hogy a Kiegyensúlyozatlan Besorolás
  4. Precíziós vs Emlékszem, hogy a Kiegyensúlyozatlan Besorolás
  5. F-Intézkedés a Kiegyensúlyozatlan Besorolás

Zavart Mátrix a Kiegyensúlyozatlan Besorolás

Mielőtt belemerülünk a pontosság, emlékszem, fontos, hogy felülvizsgálja a zűrzavar mátrix.,

kiegyensúlyozatlan osztályozási problémák esetén a többségi osztályt általában negatív eredménynek nevezik (például” nincs változás” vagy “negatív teszt eredmény”), a kisebbségi osztályt általában pozitív eredménynek nevezik (például “változás”vagy” pozitív teszt eredmény”).

az összetévesztési mátrix több betekintést nyújt nemcsak egy prediktív modell teljesítményébe, hanem azt is, hogy mely osztályokat jósolják helyesen, melyik hibásan, milyen típusú hibákat követnek el.,

a legegyszerűbb zavarmátrix egy kétosztályos osztályozási probléma, negatív (0. osztály) és pozitív (1. osztály) osztályokkal.

az ilyen típusú zavart mátrix, minden sejt a táblázatban van egy konkrét, jól értettem neve, az alábbiakban foglalhatók össze:

A pontosság, emlékszem, mutatók meghatározása tekintetében, a sejtek, a zavartság, a mátrix, kifejezetten kifejezések, mint az igazi pozitív, illetve hamis negatív.

most, hogy már csiszolt fel a zavart mátrix, vessünk egy közelebbi pillantást a precíziós metrika.,

precíziós kiegyensúlyozatlan besorolás

precíziós egy mutató, amely számszerűsíti a helyes pozitív jóslatok.

pontosság, ezért kiszámítja a pontosságot a kisebbségi osztály.

úgy számítják ki, mint a helyesen előrejelzett pozitív példák arányát, osztva az előrejelzett pozitív példák teljes számával.

precíziós értékeli a frakció helyes minősített példányok között besorolt pozitív …

— Page 52, tanulás kiegyensúlyozatlan adathalmazok, 2018.,

precíziós bináris besorolás

egy kiegyensúlyozatlan osztályozási probléma két osztály, precíziós számítjuk száma igaz pozitív osztva az összes igaz pozitív és hamis pozitív.

  • Precision = TruePositives/(TruePositives + FalsePositives)

az eredmény 0,0 közötti érték a pontosság hiánya és 1,0 a teljes vagy tökéletes pontosság érdekében.

tegyük ezt a számítást konkrét példákkal.,

Vegyünk egy 1:100 kisebbség-többség arányú adatkészletet, 100 kisebbségi példával és 10 000 többségi osztály példával.

egy modell jóslatokat készít, és 120 példát jósol a kisebbségi osztályhoz tartozónak, amelyek közül 90 helyes, 30 pedig helytelen.

ennek a modellnek a pontosságát a következőképpen kell kiszámítani:

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

az eredmény 0,75 pontosságú, ami ésszerű érték, de nem kiemelkedő.,

láthatjuk, hogy a pontosság egyszerűen a helyes pozitív előrejelzések aránya az összes pozitív jóslatból, vagy a kisebbségi osztály előrejelzéseinek pontossága.

fontolja meg ugyanazt az adatkészletet, ahol egy modell 50, a kisebbségi osztályba tartozó példát jósol, amelyek közül 45 valódi pozitív, öt pedig hamis pozitív. A modell pontosságát a következőképpen tudjuk kiszámítani:

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

ebben az esetben, bár a modell sokkal kevesebb példát jósolt a kisebbségi osztályba tartozónak, a helyes pozitív példák aránya sokkal jobb.

ez kiemeli, hogy bár a pontosság hasznos, nem mondja el az egész történetet. Nem kommentálja, hogy hány valódi pozitív osztálypéldát jósoltak a negatív osztályhoz tartozónak, úgynevezett hamis negatívoknak.

szeretné elkezdeni az egyensúlyhiány osztályozását?

vegye be az ingyenes 7 napos e-mail összeomlási tanfolyamot most (mintakóddal).,

kattintson a regisztrációhoz, valamint kap egy ingyenes pdf Ebook változata a tanfolyam.

töltse le ingyenes Mini-tanfolyamát

pontosság a Többosztályos osztályozáshoz

a pontosság nem korlátozódik a bináris osztályozási problémákra.

egy kiegyensúlyozatlan osztályozási probléma több mint két osztály, precíziós kiszámítása az összeg a valódi pozitívok az összes osztály osztva az összeg a valódi pozitív és hamis pozitív minden osztályban.,

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

például előfordulhat, hogy kiegyensúlyozatlan multiclass osztályozási problémánk van, ahol a többségi osztály a negatív osztály, de van két pozitív kisebbségi osztály: 1.és 2. osztály. A pontosság számszerűsítheti a helyes előrejelzések arányát mindkét pozitív osztályban.,

Vegyünk egy 1:1:100 kisebbség-többségi osztály arányú adatkészletet, amely minden pozitív osztály esetében 1:1 arány, a kisebbségi osztályok esetében pedig 1: 100 arány a többségi osztályhoz, és minden kisebbségi osztályban 100 példa van, a többségi osztályban pedig 10 000 példa.

a modell előrejelzéseket készít, és 70 példát jósol az első kisebbségi osztályra, ahol 50 helyes, 20 pedig helytelen. A második osztályra 150-et jósol, 99-et helyes és 51-et helytelen., A pontosság a következőképpen számítható ki erre a modellre:

láthatjuk, hogy a precíziós metrikus számítási skálák növelik a kisebbségi osztályok számát.

Számítsa ki a pontosságot a Scikit-Learn

segítségével a precíziós pontszám kiszámítható a precision_score () scikit-learn funkcióval.

például ezt a funkciót használhatjuk az előző szakasz forgatókönyveinek pontosságának kiszámításához.

először is, abban az esetben, ha 100 pozitív-10 000 negatív példa van, és egy modell 90 valódi pozitív és 30 hamis pozitív eredményt jósol. A teljes példa az alábbiakban található.,

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

1
Precision: 0.,750

a Következő használhatjuk ugyanazt a funkciót kiszámításához precíziós a multiclass probléma 1:1:100, 100 példák az egyes kisebbségi osztály 10 000 a többségi osztályban. Egy modell 50 valódi pozitív és 20 hamis pozitív értéket jósol az 1. és 99.osztályra, valamint 51 hamis pozitív értéket a 2. osztályra.,

a precision_score() függvény multiclass osztályozáshoz történő használatakor fontos, hogy a kisebbségi osztályokat a “címkék” argumentumon keresztül adjuk meg, az “átlagos” argumentumot pedig “mikro” – ra állítsuk, hogy biztosítsuk a számítás elvégzését, ahogy azt elvárjuk.

a teljes példa az alábbiakban található.

ismét fut a példa kiszámítja a pontosságot a multiclass példa megfelel a kézi számítás.,

1
Pontosság: 0.,677

visszahívás a kiegyensúlyozatlan osztályozás

visszahívás egy olyan mutató, amely számszerűsíti a helyes pozitív előrejelzések számát, amelyek az összes lehetséges pozitív jóslatból származtak.

ellentétben precíziós, hogy csak megjegyzéseket a helyes pozitív jóslatok ki minden pozitív jóslatok, visszahívás jelzi kimaradt pozitív jóslatok.

ily módon, visszahívás nyújt némi fogalma a lefedettség a pozitív osztály.,

a tanuláshoz a visszahívást általában a kisebbségi osztály lefedettségének mérésére használják.

— 27. oldal, 2013.

visszahívás bináris osztályozás

egy kiegyensúlyozatlan osztályozási probléma két osztály, visszahívás számítjuk száma igaz pozitív osztva az összes igaz pozitív és hamis negatívok.

  • Recall = TruePositives/(TruePositives + FalseNegatives)

az eredmény értéke 0.,0 nincs visszahívás, 1.0 pedig teljes vagy tökéletes visszahívás.

tegyük ezt a számítást konkrét példákkal.

mint az előző részben, fontolja meg az 1:100 kisebbség-többség arányú adatkészletet, 100 kisebbségi példával és 10 000 többségi osztály példával.

a modell jóslatokat készít, és a pozitív osztály előrejelzései közül 90-et helyesen és 10-et helytelenül jósol. A modell visszahívását a következőképpen számíthatjuk ki:

  • Recall = TruePositives / (TruePositives + FalseNegatives)
  • visszahívás = 90 / (90 + 10)
  • visszahívás = 90 / 100
  • visszahívás = 0.,9

Ez a modell jó visszahívással rendelkezik.

visszahívás A Többosztályos osztályozáshoz

a visszahívás nem korlátozódik a bináris osztályozási problémákra.

egy kiegyensúlyozatlan osztályozási probléma több mint két osztály, visszahívás számítjuk ki, mint az összeg a valódi pozitív minden osztályban osztva az összeg a valódi pozitív és hamis negatívok minden osztályban.,

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

mint az előző szakaszban, fontolja meg az 1:1:100 kisebbségi többségi osztály arányú adatkészletet, amely minden pozitív osztály esetében 1:1 arány, a kisebbség esetében pedig 1:100 arány a többségi osztályhoz, és mindegyik kisebbségi osztályban 100 példa van, és 10 000 példa a többségi osztályban.

egy Modell 77 példát jósol helyesen, 23-at pedig helytelenül az 1. osztályra, 95-öt pedig a 2.osztályra., A modell visszahívását a következőképpen tudjuk kiszámítani:

Számítsa ki a visszahívást a Scikit-Learn

segítségével a visszahívási pontszám a recall_score() scikit-learn funkció segítségével számítható ki.

például ezt a funkciót a fenti forgatókönyvek visszahívásának kiszámításához használhatjuk.

először 1:100, illetve 10 000 példával tekinthetjük meg az 1: 100 egyenlőtlenség esetét, egy modell pedig 90 valódi pozitívumot és 10 hamis negatívot jósol.

a teljes példa az alábbiakban található.

a példa futtatásával láthatjuk, hogy a pontszám megegyezik a fenti kézi számítással.,

1
Előhívás: 0.,900

a recall_score () – t a kiegyensúlyozatlan multiclass osztályozási problémákra is használhatjuk.

ebben az esetben az adatkészletnek 1:1:100 egyensúlyhiánya van, mindegyik kisebbségi osztályban 100, a többségi osztályban pedig 10.000. Egy Modell 77 valódi pozitívumot és 23 hamis negatívot jósol az 1. és 95. osztályra, valamint öt hamis negatívot a 2. osztályra.

a teljes példa az alábbiakban található.

ismét fut a példa kiszámítja a visszahívás a multiclass példa megfelel a kézi számítás.,

1
Előhívás: 0.860

Precíziós, ill., Emlékezzünk kiegyensúlyozatlan besorolás

dönthet úgy, hogy használja precíziós vagy visszahívni a kiegyensúlyozatlan osztályozási probléma.

a pontosság maximalizálása minimalizálja a hamis pozitívok számát, míg a visszahívás maximalizálása minimalizálja a hamis negatívok számát.

  • pontosság: a hamis pozitívumok minimalizálásakor megfelelő a hangsúly.
  • visszahívás: a hamis negatívok minimalizálásakor megfelelő a hangsúly.

néha kiváló előrejelzéseket akarunk a pozitív osztályról. Nagy pontosságot és nagy visszahívást akarunk.,

ez kihívást jelenthet, mivel a visszahívás gyakran növekszik a pontosság csökkenésének rovására.

a kiegyensúlyozatlan adatkészletekben a cél a visszahívás javítása a pontosság megsértése nélkül. Ezek a célok azonban gyakran ellentmondásosak, mivel a kisebbségi osztály TP-jének növelése érdekében az FP számát is gyakran növelik, ami csökkent pontosságot eredményez.

— 55.oldal, alapismeretek, algoritmusok és alkalmazások, 2013.,

Mindazonáltal, ahelyett, hogy az egyik vagy a másik mérést választanánk, kiválaszthatunk egy új metrikát, amely egyesíti mind a pontosságot, mind a visszahívást egy pontszámba.

F-intézkedés kiegyensúlyozatlan besorolás

osztályozási pontosság széles körben használják, mert ez az egyetlen intézkedés összefoglalni modell teljesítményét.

F-Measure egy módja annak, hogy összekapcsolják mind a pontosság, mind a visszahívás egyetlen intézkedés, amely rögzíti mindkét tulajdonságot.

egyedül, sem a pontosság, sem a visszahívás nem mondja el az egész történetet., Kiváló pontossággal rendelkezhetünk szörnyű visszahívással, vagy váltakozva, szörnyű pontossággal kiváló visszahívással. Az F-intézkedés lehetővé teszi mindkét aggodalom egyetlen ponttal történő kifejezését.

miután a pontosságot és a visszahívást kiszámították egy bináris vagy többosztályos osztályozási problémára, a két pontszám kombinálható az F-intézkedés kiszámításába.

a hagyományos f mérést a következőképpen kell kiszámítani:

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

Ez a két frakció harmonikus átlaga., Ezt néha F-pontszámnak vagy F1-pontszámnak nevezik, és ez lehet a leggyakoribb mutató, amelyet a kiegyensúlyozatlan osztályozási problémákra használnak.

… Az F1-mérés, amely a pontosságot és a visszahívást egyformán súlyozza, a leggyakrabban használt változat, amikor kiegyensúlyozatlan adatokból tanul.

— 27. oldal, 2013.

a pontossághoz és a visszahíváshoz hasonlóan a gyenge F-mérési pontszám 0,0, a legjobb vagy tökéletes F-mérési pontszám pedig 1.,0

például A tökéletes, precíz emlékszem pontszámot eredményez tökéletes F-Intézkedés pontszám:

  • F-Measure = (2 * Pontosság * Emlékszem) / (Pontosság + Emlékszem)
  • F-Measure = (2 * 1.0 * 1.0) / (1.0 + 1.0)
  • F-Measure = (2 * 1.0) / 2.0
  • F-Measure = 1.0

legyen ez a számítás beton egy kidolgozott példa.

fontolja meg egy bináris osztályozási adathalmazt 1: 100 kisebbség-többség arány mellett, 100 kisebbségi példával és 10.000 többségi osztály példával.,

Vegyünk egy olyan modellt, amely 150 példát jósol a pozitív osztályra, 95 helyes (valódi pozitív), vagyis öt hiányzott (hamis negatívok), 55 pedig helytelen (hamis pozitívok).

a precizitást a következőképpen tudjuk kiszámítani:

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

a visszahívást a következőképpen tudjuk kiszámítani:

  • Recall = TruePositives / (TruePositives + FalseNegatives)
  • visszahívás = 95 / (95 + 5)
  • visszahívás = 0.,95

Ez azt mutatja, hogy a modell gyenge pontosságú, de kiváló visszahívás.

végül az F-mérést az alábbiak szerint számíthatjuk ki:

láthatjuk, hogy a jó visszahívási szintek-a gyenge pontosságot, rendben vagy ésszerű F-mérési pontszámot adva.

Számítsa ki az F-mérést a Scikit-Learn

segítségével az F-measure pontszám az f1_score() scikit-learn funkció segítségével számítható ki.

például ezt a funkciót használjuk a fenti forgatókönyv F-mérésének kiszámításához.,

Ez egy 1:100-as, illetve 100 000-es példával való egyensúlyhiány esetére van, és egy modell 95 valódi pozitívumot, öt hamis negatívot és 55 hamis pozitívumot jósol.

a teljes példa az alábbiakban található.

a példa futtatása kiszámítja az f-mérést, amely megfelel a kézi számításnak, néhány kisebb kerekítési hibán belül.,

1
F-Intézkedés: 0.,760

további olvasás

Ez a szakasz további forrásokat biztosít a témáról, ha mélyebbre szeretne menni.

Oktató

  • Hogyan kell Kiszámítani a Precíziós, Emlékszem, F1, Több Mély Tanulási Modellek
  • Hogyan kell Használni a ROC Görbék, Precíziós-Emlékszem Görbék az Osztályozás a Python

Papírokat

  • Egy Szisztematikus Elemzése a Teljesítmény Intézkedések Osztályozási Feladatok, 2009.

Books

  • : Foundations, Algorithms, and Applications, 2013.,
  • tanulás a kiegyensúlyozatlan adatkészletekből, 2018.

API

  • sklearn.mutatókat.precision_score API.
  • sklearn.mutatókat.recall_score API.
  • sklearn.mutatókat.F1_SCORE API.

cikkek

  • zavart mátrix, Wikipedia.
  • Precision and recall, Wikipedia.
  • F1 pontszám, Wikipedia.

összefoglaló

ebben az oktatóanyagban felfedezted, hogyan lehet kiszámítani és fejleszteni egy intuíciót a precizitáshoz és a kiegyensúlyozatlan osztályozáshoz való visszahíváshoz.,

konkrétan megtanultad:

  • a pontosság számszerűsíti a pozitív osztály-előrejelzések számát, amelyek valójában a pozitív osztályhoz tartoznak.
  • a Recall számszerűsíti az adatkészletben szereplő összes pozitív példából származó pozitív osztály-előrejelzések számát.
  • F-Measure biztosít egyetlen pontszámot, amely egyensúlyba hozza mind a pontosság, mind a visszahívás aggályait egy számban.

van bármilyen kérdése?
tegye fel kérdéseit az alábbi megjegyzésekben, és mindent megteszek, hogy válaszoljak.,

kap egy fogantyú kiegyensúlyozatlan besorolás!

percekben Fejleszteni kell a tanulási modelleket…csak néhány sor python kód

fedezze fel, hogyan az én új Ebook:
kiegyensúlyozatlan osztályozás Python

Ez biztosítja önálló tanulmány útmutatók és end-to-end projektek:
teljesítménymutatók, Undersampling módszerek, SMOTE, küszöb mozgó, valószínűség kalibrálás, költség-érzékeny algoritmusok
és még sok más…,

hozzon kiegyensúlyozatlan osztályozási módszereket a gépi tanulási projektekhez

nézze meg, mi van benne

Tweet Share Share

Share

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük