Articles

curba ASC-ROC în Machine Learning explicată clar

curba ASC-Roc – interpretul vedetă!

ți – ai construit modelul de învățare automată-Deci ce urmează? Trebuie să îl evaluați și să validați cât de bun (sau rău) este, astfel încât să puteți decide dacă îl implementați. Aici intervine curba ASC-ROC.

numele ar putea fi o îmbucătură, dar spune doar că calculăm „aria de sub curbă” (ASC) a „operatorului caracteristic receptor” (Roc). Confuz? Te simt! Am fost în locul tău. Dar nu vă faceți griji, vom vedea ce înseamnă acești termeni în detaliu și totul va fi o bucată de tort!

AUC_ROC_meme

deocamdată, trebuie doar să știți că curba ASC-ROC ne ajută să vizualizăm cât de bine funcționează clasificatorul nostru de învățare automată. Deși funcționează doar pentru probleme de clasificare binară, vom vedea spre final cum îl putem extinde pentru a evalua și problemele de clasificare multi-clasă.

vom acoperi subiecte precum sensibilitatea și specificitatea, deoarece acestea sunt subiecte cheie din spatele curbei ASC-ROC.

vă sugerez să parcurgeți articolul despre matricea confuziei, deoarece va introduce câțiva termeni importanți pe care îi vom folosi în acest articol.

cuprins

  • ce sunt sensibilitatea și specificitatea?
  • Probabilitatea predicțiilor
  • care este curba ASC-ROC?
  • cum funcționează curba ASC-ROC?
  • ASC – ROC în Python
  • ASC-ROC pentru clasificarea Multi-clasă

ce sunt sensibilitatea și specificitatea?

așa arată o matrice de confuzie:

matricea confuziei

din matricea confuziei, putem deduce câteva valori importante care nu au fost discutate în articolul anterior. Să vorbim despre ele aici.

sensibilitate / rată pozitivă adevărată/rechemare

formula de sensibilitate

sensibilitatea ne spune ce proporție din clasa pozitivă a fost clasificată corect.

un exemplu simplu ar fi să determinăm ce proporție din bolnavii reali au fost detectați corect de model.

rata fals negativă

rata fals negativ

rata fals negativ (FNR) ne spune ce proporție din clasa pozitiv a fost clasificat incorect de clasificator.

un TPR mai mare și un FNR mai mic este de dorit, deoarece dorim să clasificăm corect clasa pozitivă.

specificitate/rata negativă reală

Formula specificității

specificitatea ne spune ce proporție din clasa negativă a fost clasificată corect.

luând același exemplu ca în sensibilitate, specificitatea ar însemna determinarea proporției de persoane sănătoase care au fost identificate corect de model.

rata fals pozitivă

rata fals pozitivă

FPR ne spune ce proporție din clasa negativă a fost clasificată incorect de clasificator.

un TNR mai mare și un FPR mai mic este de dorit, deoarece dorim să clasificăm corect clasa negativă.

dintre aceste valori, sensibilitatea și specificitatea sunt probabil cele mai importante și vom vedea mai târziu cum acestea sunt utilizate pentru a construi o metrică de evaluare. Dar, înainte de aceasta, să înțelegem de ce probabilitatea de predicție este mai bună decât prezicerea directă a clasei țintă.

Probabilitatea predicțiilor

un model de clasificare a învățării automate poate fi utilizat pentru a prezice direct clasa reală a punctului de date sau pentru a prezice probabilitatea de apartenență la diferite clase. Acesta din urmă ne oferă mai mult control asupra rezultatului. Ne putem determina propriul prag pentru a interpreta rezultatul Clasificatorului. Acest lucru este uneori mai prudent decât construirea unui model complet nou!

stabilirea unor praguri diferite pentru clasificarea clasei pozitive pentru punctele de date va schimba din greșeală sensibilitatea și specificitatea modelului. Și unul dintre aceste praguri va da probabil un rezultat mai bun decât celelalte, în funcție de scopul nostru de a reduce numărul de falsuri negative sau fals pozitive.

uitați-vă la tabelul de mai jos:

exemplu de curbă ASC-ROC

Valorile se modifică odată cu modificarea valorilor pragului. Putem genera diferite matrice de confuzie și putem compara diferitele valori pe care le-am discutat în secțiunea anterioară. Dar asta nu ar fi un lucru prudent de făcut. În schimb, ceea ce putem face este să generăm un complot între unele dintre aceste valori, astfel încât să putem vizualiza cu ușurință ce prag ne oferă un rezultat mai bun.

curba ASC-ROC rezolvă doar această problemă!

care este curba ASC-ROC?

curba caracteristică a operatorului receptor (Roc) este o metrică de evaluare a problemelor de clasificare binară. Este o curbă de probabilitate care trasează TPR împotriva FPR la diferite valori de prag și separă în esență ‘semnalul’ de ‘zgomot’. Aria de sub curbă (ASC) este măsura capacității unui clasificator de a distinge între clase și este utilizată ca rezumat al curbei ROC.

cu cât ASC este mai mare, cu atât performanța modelului este mai bună la distingerea claselor pozitive și negative.

curba ASC ROC

când ASC = 1, atunci clasificatorul este capabil să distingă perfect corect toate punctele de clasă pozitive și Negative. Dacă, totuși, ASC ar fi fost 0, atunci clasificatorul ar prezice toate negativele ca pozitive și toate pozitivele ca negative.

curba ASC ROC

când 0.5<ASC<1, Există șanse mari ca clasificatorul să poată distinge valorile clasei pozitive de valorile clasei negative. Acest lucru se întâmplă deoarece clasificatorul este capabil să detecteze mai multe numere de pozitive adevărate și negative adevărate decât negative False și pozitive False.

ieșire aleatorie AUC Roc

când ASC=0,5, atunci clasificatorul nu este capabil să distingă între punctele de clasă pozitive și Negative. Adică fie clasificatorul prezice clasa aleatorie, fie clasa constantă pentru toate punctele de date.deci, cu cât este mai mare valoarea ASC pentru un clasificator, cu atât este mai bună capacitatea sa de a distinge între clasele pozitive și cele negative.

cum funcționează curba ASC-ROC?

într-o curbă ROC, o valoare mai mare a axei X indică un număr mai mare de fals pozitive decât adevăratele negative. În timp ce o valoare mai mare a axei Y indică un număr mai mare de pozitive adevărate decât negative False. Deci, alegerea pragului depinde de capacitatea de a echilibra între fals pozitive și fals negative.

să săpăm un pic mai adânc și să înțelegem cum ar arăta curba noastră ROC pentru diferite valori de prag și cum ar varia specificitatea și sensibilitatea.

curba ASC-ROC

putem încerca să înțelegem acest grafic generând o matrice de confuzie pentru fiecare punct corespunzător unui prag și să vorbim despre performanța Clasificatorului nostru:

matricea de confuzie a eșantionului

punctul A este locul în care sensibilitatea este cea mai mare și specificitatea cea mai mică. Aceasta înseamnă că toate punctele de clasă pozitive sunt clasificate corect și toate punctele de clasă Negative sunt clasificate incorect.

de fapt, orice punct de pe linia albastră corespunde unei situații în care rata pozitivă adevărată este egală cu rata pozitivă falsă.

toate punctele de deasupra acestei linii corespund situației în care proporția punctelor clasificate corect aparținând clasei pozitive este mai mare decât proporția punctelor clasificate incorect aparținând clasei Negative.

matrice de confuzie a eșantionului

deși punctul B are aceeași sensibilitate ca punctul A, are o specificitate mai mare. Adică numărul de puncte de clasă negative incorect este mai mic comparativ cu pragul anterior. Acest lucru indică faptul că acest prag este mai bun decât cel precedent.

matrice de confuzie ASC ROC

între punctele C și D, sensibilitatea la punctul C este mai mare decât punctul D pentru aceeași specificitate. Aceasta înseamnă că, pentru același număr de puncte de clasă negative clasificate incorect, clasificatorul a prezis un număr mai mare de puncte de clasă pozitive. Prin urmare, pragul de la punctul C este mai bun decât punctul D.

acum, în funcție de câte puncte clasificate incorect vrem să tolerăm pentru clasificatorul nostru, am alege între punctul B sau C pentru a prezice dacă mă puteți învinge în PUBG sau nu.

„speranțele False sunt mai periculoase decât temerile.”- J. R. R. Tolkein

matricea de confuzie

punctul E este locul unde specificitatea devine cea mai mare. Adică nu există fals pozitive clasificate după model. Modelul poate clasifica corect toate punctele de clasă Negative! Am alege acest punct dacă problema noastră ar fi să oferim recomandări de melodii perfecte utilizatorilor noștri.

mergând după această logică, puteți ghici unde ar fi punctul corespunzător unui clasificator perfect pe grafic?

Da! Ar fi în colțul din stânga sus al graficului ROC corespunzător coordonatei (0, 1) din planul cartezian. Aici ambele, sensibilitatea și specificitatea, ar fi cele mai înalte, iar clasificatorul ar clasifica corect toate punctele de clasă pozitive și Negative.

înțelegerea curbei ASC-ROC în Python

acum, fie putem testa manual sensibilitatea și specificitatea pentru fiecare prag, fie îl putem lăsa pe sklearn să facă treaba pentru noi. Cu siguranță mergem cu acesta din urmă!

să creăm datele noastre arbitrare folosind metoda sklearn make_classification:

voi testa performanța a doi clasificatori pe acest set de date:

Sklearn are o metodă foarte puternică roc_curve() care calculează ROC pentru clasificatorul dvs. în câteva secunde! Returnează valorile FPR, TPR și prag:

scorul ASC poate fi calculat folosind metoda roc_auc_score () a sklearn:

0.9761029411764707 0.9233769727403157

încercați acest cod în fereastra de codificare live de mai jos:

de asemenea, putem trasa curbele ROC pentru cei doi algoritmi folosind matplotlib:

curba Roc de clasă binară

este evident din grafic că ASC pentru curba Roc de regresie logistică este mai mare decât cea pentru curba ROC KNN. Prin urmare, putem spune că regresia logistică a făcut o treabă mai bună de clasificare a clasei pozitive în setul de date.

ASC-ROC pentru clasificarea Multi-clasă

așa cum am spus mai înainte, curba ASC-ROC este doar pentru probleme de clasificare binară. Dar îl putem extinde la problemele de clasificare multiclasă folosind tehnica One vs All.

deci, dacă avem trei clase 0, 1 și 2, ROC pentru clasa 0 va fi generat ca clasificând 0 împotriva Nu 0, adică 1 și 2. ROC pentru clasa 1 va fi generat ca clasificând 1 împotriva Nu 1 și așa mai departe.

curba ROC pentru modelele de clasificare multi-clasă poate fi determinată după cum urmează:

Multiclass Roc

note finale

sper că ați găsit acest articol util pentru a înțelege cât de puternică este metrica curbei ASC-ROC în măsurarea performanței unui clasificator. Veți folosi acest lucru foarte mult în industrie și chiar în știința datelor sau hackathoanele de învățare automată. Mai bine familiarizați-vă cu ea!

Mergând mai departe, vă recomand următoarele cursuri care vă vor fi utile în construirea perspicacității științei datelor:

  • Introducere în știința datelor
  • învățarea automată aplicată

puteți citi și acest articol în aplicația noastră mobilăObțineți-l pe Google Play