Articles

AUC-ROC görbe a gépi tanulásban egyértelműen magyarázható

AUC-ROC görbe-a csillag előadóművész!

Ön építette a gépi tanulási modellt-tehát mi a következő lépés? Értékelnie kell, és ellenőriznie kell, hogy mennyire jó (vagy rossz), így eldöntheti, hogy végrehajtja-e. Itt jön be az AUC-ROC görbe.

a név lehet egy falat, de ez csak azt mondja, hogy kiszámítjuk a “terület a görbe alatt” (AUC) a “Vevő jellemző operátor” (ROC). Zavarodott? Érzem magát! A te helyedben voltam. De ne aggódj, látni fogjuk, mit jelentenek ezek a kifejezések részletesen, és minden lesz egy szelet tortát!

auc_roc_meme

egyelőre csak tudd, hogy az AUC-ROC görbe segít elképzelni, hogy a gépi tanulási osztályozónk milyen jól teljesít. Bár csak bináris osztályozási problémák esetén működik, a vége felé látni fogjuk, hogyan tudjuk kiterjeszteni azt a többosztályos osztályozási problémák értékelésére is.

olyan témákkal foglalkozunk, mint az érzékenység és a specificitás, mivel ezek az AUC-ROC görbe mögötti kulcsfontosságú témák.

azt javaslom, hogy olvassa el a Confusion Matrix cikket, mivel néhány fontos kifejezést fog bevezetni, amelyeket ebben a cikkben fogunk használni.

Tartalomjegyzék

  • mik azok az érzékenység és specificitás?
  • jóslatok valószínűsége
  • mi az AUC-ROC görbe?
  • hogyan működik az AUC-ROC görbe?
  • AUC-ROC in Python
  • AUC-ROC for Multi-Class besorolás

mik azok az érzékenység és specificitás?

így néz ki egy zavart mátrix:

Confusion matrix

a confusion matrix-ból levezethetünk néhány fontos mutatót, amelyeket az előző cikkben nem tárgyaltunk. Beszéljünk róluk itt.

érzékenység / True Positive Rate / Recall

érzékenységi képlet

az érzékenység megmutatja, hogy a pozitív osztály hány százaléka kapott helyesen besorolást.

egyszerű példa lenne annak meghatározása, hogy a tényleges betegek hány százalékát helyesen észlelte a modell.

False Negative Rate

False Negative Rate

False Negative Rate (FNR) megmondja, hogy a pozitív osztály hány százalékát kapta helytelenül az osztályozó.

egy magasabb TPR és egy alacsonyabb FNR kívánatos, mivel helyesen akarjuk osztályozni a pozitív osztályt.

specificitás / True Negative Rate

specificitás formula

a specificitás megmutatja, hogy a negatív osztály hány százaléka kapott helyesen besorolást.

ugyanaz a példa, mint az érzékenység, a specifitás azt jelentené, hogy meghatározzuk az egészséges emberek arányát, akiket a modell helyesen azonosított.

hamis pozitív arány

hamis pozitív arány

az FPR megmondja,hogy a negatív osztály hány százalékát kapta helytelenül az osztályozó.

magasabb TNR és alacsonyabb FPR kívánatos, mivel helyesen akarjuk osztályozni a negatív osztályt.

Ezek közül a mutatók közül talán az érzékenység és a specificitás a legfontosabb, majd később meglátjuk, hogy ezeket hogyan használják egy értékelési mutató felépítéséhez. De előtte értsük meg, miért jobb az előrejelzés valószínűsége, mint közvetlenül a célosztály előrejelzése.

jóslatok valószínűsége

a gépi tanulási osztályozási modell felhasználható az adatpont tényleges osztályának közvetlen előrejelzésére vagy a különböző osztályokhoz való tartozás valószínűségének előrejelzésére. Ez utóbbi nagyobb ellenőrzést biztosít az eredmény felett. Meghatározhatjuk saját küszöbünket, hogy értelmezzük az osztályozó eredményét. Ez néha óvatosabb, mint egy teljesen új modell építése!

különböző küszöbértékek beállítása az adatpontok pozitív osztályozásához véletlenül megváltoztatja a modell érzékenységét és specifikusságát. Ezen küszöbértékek egyike valószínűleg jobb eredményt ad, mint a többiek, attól függően, hogy csökkentjük-e a hamis negatívok vagy hamis pozitívok számát.

nézze meg az alábbi táblázatot:

AUC-ROC görbe példa

a mutatók a változó küszöbértékekkel változnak. Különböző zavartsági mátrixokat hozhatunk létre, valamint összehasonlíthatjuk az előző részben tárgyalt különböző mutatókat. De ez nem lenne bölcs dolog. Ehelyett, mit tehetünk, hogy létrehoz egy telek között néhány ilyen mutatókat, így könnyen láthatóvá, amely küszöbérték ad nekünk egy jobb eredményt.

az AUC-ROC görbe megoldja ezt a problémát!

mi az AUC-ROC görbe?

a Vevő operátor karakterisztika (ROC) görbe egy értékelési mutató bináris osztályozási problémák. Ez egy valószínűségi görbe, amely a TPR-t az FPR-vel szemben különböző küszöbértékeken ábrázolja, és lényegében elválasztja a “jelet” a “zajtól”. A görbe alatti terület (AUC) az osztályozó azon képességének mértéke, hogy különbséget tegyen az osztályok között, és a ROC-görbe összefoglalójaként használják.

minél magasabb az AUC, annál jobb a modell teljesítménye, megkülönböztetve a pozitív és negatív osztályokat.

AUC ROC görbe

amikor AUC = 1, akkor az osztályozó képes tökéletesen megkülönböztetni az összes pozitív és negatív osztálypontot helyesen. Ha azonban az AUC 0 lett volna, akkor az osztályozó minden negatívot pozitívnak, minden Pozitívot negatívnak jósol.

AUC ROC curve

amikor 0.5<AUC< 1, nagy esély van arra, hogy az osztályozó képes lesz megkülönböztetni a pozitív osztályértékeket a negatív osztályértékektől. Ez azért van így, mert az osztályozó képes felismerni több számot a valódi pozitív és igaz negatívok, mint a hamis negatívok és hamis pozitív.

AUC ROC véletlen kimenet

amikor AUC=0,5, akkor az osztályozó nem képes különbséget tenni a pozitív és negatív osztálypontok között. Vagyis az osztályozó véletlenszerű osztályt vagy állandó osztályt jósol az összes adatpontra.

tehát minél magasabb egy osztályozó AUC értéke, annál jobban képes megkülönböztetni a pozitív és a negatív osztályokat.

hogyan működik az AUC-ROC görbe?

egy ROC-görbében a magasabb X-tengely érték nagyobb számú hamis pozitív értéket jelez, mint a valódi negatívok. Míg egy magasabb Y-tengely érték nagyobb számú valódi pozitív értéket jelez, mint a hamis negatívok. Tehát a küszöbérték megválasztása attól függ, hogy képes-e egyensúlyozni a hamis pozitívok és a hamis negatívok között.

ássunk egy kicsit mélyebbre, és értsük meg, hogyan nézne ki a ROC görbénk a különböző küszöbértékekre, és hogyan változna a specifitás és az érzékenység. AUC-ROC görbe

tehetünk, hogy megpróbáljuk megérteni, ez a grafikon által generál egy zavart mátrix minden egyes pont megfelelő, hogy egy küszöbérték, hogy megbeszéljük a teljesítmény, az osztályozó: Minta Zavart mátrix

A Pont, ahol az Érzékenység, a legmagasabb pedig Sajátossága a legalacsonyabb. Ez azt jelenti, hogy az összes pozitív osztálypont helyesen van besorolva, az összes negatív osztálypont pedig helytelenül van besorolva.

valójában a kék vonal bármely pontja olyan helyzetnek felel meg, amikor a valódi pozitív arány megegyezik a hamis pozitív aránygal.

az e sor feletti összes pont megfelel annak a helyzetnek, amikor a pozitív osztályba tartozó helyesen Osztályozott pontok aránya nagyobb, mint a negatív osztályba tartozó helytelenül Osztályozott pontok aránya.

Minta Összetévesztési mátrix

bár a B pont ugyanolyan érzékenységgel rendelkezik, mint az a pont, nagyobb specificitással rendelkezik. Ami azt jelenti, hogy a helytelenül negatív osztálypontok száma alacsonyabb az előző küszöbértékhez képest. Ez azt jelzi, hogy ez a küszöb jobb, mint az előző.

Confusion Matrix AUC ROC

A C és D pontok között a C pont érzékenysége magasabb, mint a D pont azonos specificitás esetén. Ez azt jelenti, hogy ugyanannyi hibásan Osztályozott negatív osztálypont esetében az osztályozó nagyobb számú pozitív osztálypontot jósolt. Ezért, a küszöb, a C pont jobb, mint a D.

Most, attól függően, hogy hány helytelenül besorolt pontot szeretnénk tűri az osztályozó, mi lenne választani a pont, B, vagy C-előre, hogy legyőzhetsz PUBG, vagy nem.

” A hamis remények veszélyesebbek, mint a félelmek.”- J. R. R. Tolkein

Confusion Matrix

az e pont az, ahol a specificitás a legmagasabb. Ami azt jelenti, hogy nincsenek hamis pozitívok, amelyeket a modell osztályoz. A modell helyesen osztályozhatja az összes negatív osztálypontot! Ezt a pontot választanánk, ha a problémánk az volt, hogy tökéletes dalajánlatokat adjunk felhasználóinknak.

ezt a logikát követve kitalálhatja, hogy a tökéletes osztályozónak megfelelő pont hol fekszik a grafikonon?

Igen! Ez lenne a bal felső sarokban a ROC grafikon megfelelő koordináta (0, 1) a derékszögű síkban. Itt van, hogy mind az érzékenység, mind a specificitás lenne a legmagasabb, és az osztályozó helyesen osztályozná az összes pozitív és negatív osztálypontot.

megértése a AUC-ROC görbe Python

most, vagy manuálisan tesztelni az érzékenység és specificitás minden küszöböt, vagy hagyja sklearn ezt a munkát számunkra. Határozottan az utóbbival megyünk!

hozzuk létre tetszőleges adatainkat a sklearn make_classification metódussal:

két osztályozó teljesítményét fogom tesztelni ezen az adatkészleten:

A Sklearn nagyon hatékony módszerrel rendelkezik roc_curve (), amely másodpercek alatt kiszámítja az osztályozó ROC-jét! Visszaadja az FPR, TPR és küszöbértékeket:

az AUC pontszám a sklearn roc_auc_score() módszerével számítható ki:

0.9761029411764707 0.9233769727403157

próbálja ki ezt a kódot az alábbi ÉLŐ kódolási ablakban:

a két algoritmus ROC görbéit is ábrázolhatjuk matplotlib segítségével:

bináris osztály ROC görbe

nyilvánvaló, hogy a telek, hogy az AUC a logisztikus regressziós ROC görbe magasabb, mint a KNN ROC görbe. Ezért azt mondhatjuk, hogy a logisztikai regresszió jobb munkát végzett a pozitív osztály osztály osztályozásában az adatkészletben.

AUC-ROC Többosztályos osztályozáshoz

mint korábban említettem, az AUC-ROC görbe csak bináris osztályozási problémákra vonatkozik. De kiterjeszthetjük a multiclass osztályozási problémákra az One vs All technika használatával. Szóval, ha van három osztály 0, 1, 2, a ROC a 0 osztály jön létre, mint osztályozása 0 szemben nem 0, azaz 1, 2. Az 1. osztályba tartozó ROC-t az 1. osztályba sorolják, nem pedig az 1. osztályba, stb.

a TÖBBOSZTÁLYOS osztályozási modellek ROC-görbéje az alábbiak szerint határozható meg:

Multiclass ROC

végjegyzetek

remélem, hasznosnak találta ezt a cikket annak megértésében, hogy az AUC-ROC görbe metrika mennyire hatékony az osztályozó teljesítményének mérésében. Ezt sokat fogja használni az iparban, sőt az adattudományban vagy a gépi tanulási hackathonokban is. Jobb, ha megismerkedsz vele!

Megy tovább, én ajánlom a következő tanfolyamok, hogy hasznos lesz, az épület, az adatok tudományos érzék:

  • Bevezetés Adatok Tudomány
  • Alkalmazott Gépi Tanulási

Azt is olvastam ezt a cikket, a Mobil APPSzerezd meg a Google Play