Matricea de confuzie în Machine Learning cu EXEMPLU

⚡ Rezumat inteligent

Matricea de confuzie este un tabel de măsurare a performanței pentru modelele de clasificare care compară etichetele prezise cu etichetele reale cunoscute, expunând exact ce clase un clasificator identifică corect și pe care le greșește.

  • 🔘 Patru rezultate: Adevăratul pozitiv, adevăratul negativ, falsul pozitiv și falsul negativ umplu fiecare celulă a unei matrice binare.
  • ☑️ Tipuri de erori: Un fals pozitiv este o eroare de tip I, în timp ce un fals negativ este o eroare de tip II.
  • Metrici derivate: Acuratețea, precizia, rechemarea, specificitatea și scorul F1 provin toate din aceleași patru criterii.
  • 🧪 Dincolo de acuratețe: În cazul datelor dezechilibrate, precizia modelului flatează, în timp ce matricea dezvăluie în ce clasă eșuează de fapt.
  • 🛠️ Vizualizare multi-clasă: N clase produc o grilă N×N unde diagonala conține fiecare predicție corectă.
  • ⚙️ Python traseu: scikit-learn construiește același tabel pe două linii cu confusion_matrix() și classification_report().

Matricea de confuzie în învățarea automată cu exemplu

Ce este Confusion Matrix?

A matrice de confuzie este o tehnică de măsurare a performanței pentru masina de învățare Clasificare. Este un tabel care arată cum s-a comportat un model de clasificare pe un set de date de testare pentru care valorile reale sunt deja cunoscute. Termenul „matrice de confuzie” este destul de simplu, dar terminologia construită pe baza acestuia poate fi confuză, așa că fiecare parte este explicată mai jos într-un limbaj simplu.

Matricea se aplică oricărei clasificator supravegheat — regresie logistică, un arbore decizional, o Model naiv Bayes sau un rețea neuronală profundă — deoarece compară doar două coloane de etichete: ce a prezis modelul și ce a fost de fapt adevărat.

Patru rezultate ale matricei de confuzie

Matricea de confuzie vizualizează acuratețea unui clasificator comparând clasele reale și cele prezise. Matricea de confuzie binară este compusă din pătrate:

Tabel de confuzie binară care prezintă cadranele TP, FP, FN și TN
Tabel de confuzie

Tabelul de mai sus prezintă cele patru pătrate pe care le conține fiecare matrice de confuzie binară:

  • TP: Adevărat pozitiv: Valorile prezise au fost corect prezise ca fiind pozitive reale
  • FP: Fals pozitiv: Valori prezise incorect, prezise ca fiind pozitive reale, adică valori negative prezise ca fiind pozitive
  • FN: Fals negativ: Valorile pozitive prezise ca fiind negative
  • Adevărat negativ: Valorile prezise au fost corect prezise ca un negativ real

Statistica dă celor două celule de eroare propriile lor nume. Un fals pozitiv este un Eroare de tip I. — modelul a declanșat o alarmă care nu ar fi trebuit să fie niciodată declanșată. Un fals negativ este un Eroare de tip II — modelul a rămas silențios când ar fi trebuit să dea alarma. Știind care dintre cele două este mai scump pentru problema ta, decide ce metrică vei ajusta ulterior.

Puteți calcula testul de precizie din matricea de confuzie, așa cum arată formula de mai jos:

Formula de precizie derivată din cele patru rezultate ale matricei de confuzie

Exemplu de matrice de confuzie

Matricea de Confuzie este o metodă utilă de învățare automată care vă permite să măsurați Recall-ul, Precizia, Acuratețea și curba AUC-ROC. Exemplul de fotbal de mai jos arată ce înseamnă termenii Adevărat Pozitiv, Adevărat Negativ, Fals Pozitiv și Fals Negativ în limbajul cotidian.

Adevărat pozitiv:

Ai prezis ceva pozitiv și s-a dovedit a fi adevărat. De exemplu, ai prezis că Franța va câștiga Cupa Mondială și a câștigat.

Adevărat negativ:

Ai prezis negativ, și asta este, de asemenea, adevărat. Ai prezis că Anglia nu va câștiga și a pierdut.

Fals pozitiv:

Previziunea ta este pozitivă și este falsă.

Ai prezis că Anglia va câștiga, dar a pierdut.

fals negativ:

Predicția ta este negativă, iar rezultatul o face falsă.

Ai prezis că Franța nu va câștiga, dar a câștigat.

Trebuie să rețineți că primul cuvânt descrie dacă predicția a fost corectă sau greșită (Adevărat sau Fals), iar al doilea cuvânt descrie ce a prezis modelul (Pozitiv sau Negativ).

Cum se calculează o matrice de confuzie

Iată procesul pas cu pas pentru calcularea unei matrice de confuzie în data mining:

  • Pas 1) În primul rând, aveți nevoie de un set de date de testare împreună cu valorile sale așteptate pentru rezultatele sale.
  • Pas 2) Preziceți toate rândurile din setul de date de testare.
  • Pas 3) Comparați rezultatele așteptate cu predicțiile și numărați:
    1. Totalul predicțiilor corecte ale fiecărei clase.
    2. Totalul predicțiilor incorecte ale fiecărei clase.

După aceea, aceste numere sunt organizate în metodele de mai jos:

  • Fiecare rând al matricei corespunde unei clase reale.
  • Fiecare coloană a matricei se leagă de o clasă prezisă.
  • Numărul total de clasificare corectă și incorectă sunt introduse în tabel.
  • Suma predicțiilor corecte pentru o clasă intră în celula unde rândul real al clasei respective se întâlnește cu propria coloană prezisă - diagonala.
  • Suma predicțiilor incorecte pentru o clasă intră în rândul real pentru valoarea clasei respective și în coloana prezisă a clasei alese de model în schimb.

Rolurile rândurilor și coloanelor sunt o convenție mai degrabă decât o lege, iar unele instrumente de reprezentare grafică transpun aspectul, așa că întotdeauna citiți etichetele axelor înainte de a interpreta o matrice. Orientarea utilizată aici - reală pe rânduri, prezisă pe coloane - este cea produsă de scikit-learn.

Alți termeni importanți folosind o matrice de confuzie

Odată ce cele patru numărători sunt stabilite, o familie de termeni secundari descrie diferite porțiuni ale aceluiași tabel:

  • Valoare predictivă pozitivă (PPV): Acest lucru este foarte aproape de precizie. O diferență semnificativă între cei doi termeni este că VPP ia în considerare prevalența. Într-o situație în care clasele sunt perfect echilibrate, valoarea predictivă pozitivă este aceeași cu precizia.
  • Rata de eroare nulă: Acest termen definește cât de des ar fi greșită predicția ta dacă ai prezice întotdeauna clasa majoritară. Îl poți trata ca o metrică de referință cu care să-ți compari clasificatorul.
  • Scor F: Scorul F1 este un scor mediu ponderat al ratei de rezultate pozitive reale (reamintire) și al preciziei.
  • Curba ROC: Curba ROC reprezintă rata reală pozitivă în raport cu rata fals pozitivă la diferite puncte limită. De asemenea, demonstrează un compromis între sensibilitate (reamintire) și specificitate, care reprezintă rata reală negativă.
  • Precizie: Metrica de precizie arată acuratețea clasei pozitive. Măsoară cât de probabilă este corectă predicția clasei pozitive.

Formula de precizie: adevăratele pozitive împărțite la adevăratele pozitive plus falsele pozitive

Scorul maxim este 1 atunci când clasificatorul clasifică perfect toate valorile pozitive. Precizia singură nu este foarte utilă deoarece ignoră clasa negativă. Metrica este de obicei asociată cu metrica de rechemare. Rechemarea este numită și sensibilitate sau rată pozitivă reală și este scrisă așa cum se arată mai jos.

  • Sensibilitate: Sensibilitatea calculează raportul claselor pozitive detectate corect. Această metrică arată cât de bun este modelul la recunoașterea unei clase pozitive.

Formula de sensibilitate: adevăratele pozitive împărțite la adevăratele pozitive plus falsele negative

Metrici și formule ale matricei de confuzie

Fiecare metrică de mai sus este aritmetică din aceleași patru puncte de vedere, așa că este util să le vedem alături de întrebarea la care răspunde fiecare.

metric Formulă Întrebare îi răspunde Folosește-l când
Acuratețe (TP + TN) / (TP + TN + FP + FN) Câte predicții au fost corecte în total? Clasele sunt aproximativ echilibrate
Precizie TP / (TP + FP) Când modelul spune pozitiv, cât de des este corect? Alarmele false sunt scumpe
Rechemare (sensibilitate) TP / (TP + FN) Dintre toate lucrurile cu adevărat pozitive, câți au fost prinși? Rezultatele pozitive ratate sunt costisitoare
specificitate TN / (TN + FP) Dintre toate aspectele negative reale, câte au fost eliminate? Clasa negativă contează și ea
Scorul F1 2 × (Precizie × Reapelare) / (Precizie + Reapelare) Care este echilibrul dintre cele două? Ai nevoie de un număr pentru ambele

Luați un filtru de spam testat pe 100 de e-mailuri care produce TP = 45, FN = 5, FP = 10 și VN = 40. Acuratețea este (45 + 40) / 100 = 0.85. Precizia este 45 / (45 + 10) = 0.82, rechemarea este 45 / (45 + 5) = 0.90, iar specificitatea este 40 / (40 + 10) = 0.80. Scorul F1 este 0.86.

Aceste cifre spun o poveste pe care o singură cifră de acuratețe o ascunde: filtrul surprinde 90% din spamul real, dar pune în carantină în mod eronat un e-mail legitim din cinci semnalate. Acceptabilitatea acestui schimb depinde de costul fiecărei erori, motiv pentru care este raportată matricea în loc să se indice doar acuratețea.

Matricea de confuzie pentru clasificarea cu mai multe clase

Problemele de clasificare rareori se opresc la două etichete, iar matricea se scalează fără a-și schimba forma. Pentru N clase, tabelul devine o grilă N×N: diagonala conține fiecare predicție corectă, iar fiecare celulă din afara diagonalei înregistrează exact ce clasă a fost confundată cu ce altă clasă.

Un model cu trei clase care sortează imaginile în pisică, câine și iepure produce o grilă de 3×3. Dacă celula de la rândul „pisică”, coloana „câine” conține 12, atunci douăsprezece imagini cu pisici au fost etichetate drept câine. Acest nivel de detaliu este motivul pentru care matricea este mai utilă decât un scor: aceasta denumește perechea specifică de clase pe care modelul nu le poate separa.

Precizia, rechemarea și F1 sunt definite per clasă folosind o vizualizare unu-versus-rest, unde clasa în cauză este clasa pozitivă și orice altceva este negativ. Cifrele per clasă sunt apoi combinate într-unul din trei moduri:

  • Media macroeconomică: Calculează metrica pentru fiecare clasă independent, apoi ia media neponderată. Fiecare clasă contează în mod egal, astfel încât clasele rare nu sunt omise.
  • Micro medie: Cumulează numărătoarea TP, FP și FN din toate clasele înainte de a calcula metrica. Clasele mari domină, iar pentru problemele cu o singură etichetă microprecizia, microreamintirea și acuratețea sunt identice.
  • Medie ponderată: Calculează media scorurilor per clasă utilizând numărul de instanțe adevărate ale fiecărei clase ca pondere, ceea ce menține vizibil dezechilibrul claselor.

Alegeți macro atunci când fiecare clasă contează în mod egal și ponderată atunci când distribuția claselor reflectă traficul real.

Cum să creezi o matrice de confuzie în Python

Biblioteca scikit-learn construiește întregul tabel din două tablouri de etichete, deci nu este necesară numărarea manuală. Exemplul de mai jos compară zece etichete adevărate cu zece predicții.

from sklearn.metrics import confusion_matrix

y_true = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0]
y_pred = [1, 0, 1, 0, 0, 1, 1, 0, 1, 0]

cm = confusion_matrix(y_true, y_pred)
print(cm)

Apelul returnează un array NumPy de 2×2 în care rândul 0 este clasa negativă propriu-zisă, iar rândul 1 este clasa pozitivă propriu-zisă:

[[4 1]
 [1 4]]

Citind matricea conform convenției scikit-learn, rezultă TN = 4 (stânga sus), FP = 1 (dreapta sus), FN = 1 (stânga jos) și TP = 4 (dreapta jos). Despachetarea acestor patru valori pe o singură linie face ca harta să fieping explicit:

tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()

Pentru a obține precizia, rechemarea și F1 pentru fiecare clasă simultan, inclusiv macro și mediile ponderate descrise mai sus, apelați classification_report() în loc să calculăm fiecare metrică manual:

from sklearn.metrics import classification_report

print(classification_report(y_true, y_pred))

Pentru o versiune grafică, ConfusionMatrixDisplay.from_predictions(y_true, y_pred) redă același tabel ca o hartă termică etichetată. Lista completă de argumente, inclusiv labels și normalize opțiuni, este documentată în referință scikit-learn confusion_matrixAceeași etapă de evaluare se aplică modelelor construite cu TensorFlow, deoarece metrica depinde doar de etichetele prezise.

De ce ai nevoie de matrice de confuzie?

Iată avantajele și beneficiile utilizării unei matrice de confuzie.

  • Arată cum un model de clasificare devine confuz atunci când face predicții.
  • Matricea de confuzie vă oferă o perspectivă nu numai asupra erorilor pe care le face clasificatorul dvs., ci și asupra tipurilor de erori pe care le face.
  • Această defalcare vă ajută să depășiți limitarea utilizării exclusive a preciziei clasificării.
  • Fiecare coloană a matricei de confuzie reprezintă instanțele acelei clase prezise.
  • Fiecare rând al matricei de confuzie reprezintă instanțele clasei actuale.
  • Transformă evaluarea modelului într-un diagnostic, indicând perechea specifică de clase care are nevoie de mai multe date sau de o caracteristică mai bună.

Această valoare diagnostică este motivul pentru care matricea de confuzie se află în centrul etapei de evaluare în orice știința datelor fluxul de lucru și de ce este de obicei primul tabel revizuit înainte ca un clasificator să fie promovat în producție.

Întrebări frecvente

Dacă doar două procente din înregistrări sunt frauduloase, un model care prezice „nu este frauduloasă” de fiecare dată obține o precizie de 98%, fără a depista nimic. Matricea expune imediat celula goală cu rezultat pozitiv adevărat, motiv pentru care reamintirea contează mai mult decât precizia datelor distorsionate.

O matrice normalizată prezintă proporții în loc de numărări brute, de obicei împărțind fiecare celulă la totalul rândului său. Aceasta face ca clasele de dimensiuni foarte diferite să fie comparabile dintr-o privire, deși ascunde dimensiunile eșantionului - așadar, raportați ambele versiuni atunci când clasele sunt dezechilibrate.

Reconstruiți matricea la mai multe praguri de probabilitate și observați tranzacția. Scăderea pragului mută înregistrările din celula fals-negativă în celula adevărat-pozitivă, crescând rata de reamintire, dar și creșterea numărului de fals-pozitive. Alegeți pragul în care amestecul de erori rămas costă cel mai puțin.

Nu. Matricea numără potrivirile discrete ale etichetelor, deci are nevoie de categorii. Rezultatele regresiei sunt continue și sunt evaluate cu măsuri de eroare, cum ar fi eroarea absolută medie sau R-pătrat. Împărțirea unei ținte continue în benzi este singura modalitate de a face o matrice semnificativă.

De obicei, reamintirea este decisivă, deoarece un diagnostic ratat costă mult mai mult decât un test de urmărire inutil. Prin urmare, instrumentele de screening sunt reglate pentru a menține rezultatele fals negative aproape de zero și pentru a accepta rezultate fals pozitive suplimentare, pe care un test de confirmare le filtrează ulterior.

Instrumentele automate de evaluare a modelelor scanează acum fiecare celulă din afara diagonalei, clasifică cele mai costisitoare confuzii și sugerează care clase au nevoie de mai multe date de antrenament sau de o etichetă îmbinată. De asemenea, ele verifică automat pragurile, transformând o comparație manuală a matricilor într-o listă scurtă clasificată.

Copilotul GitHub schițează importul, apelul metricii și un grafic al hărții termice dintr-un comentariu scurt. Tratați schița ca punct de plecare — confirmați întotdeauna ordinea axelor și argumentul etichetei pozitive, deoarece o matrice transpusă inversează fiecare concluzie.

Suficient de mare încât cea mai rară clasă își umple totuși rândul cu un număr funcțional — o mână de eșantioane produce valori care oscilează rapid între rulări. Validarea încrucișată, care însumează matricile pe mai multe pliuri, oferă o imagine mai stabilă decât o mică divizare a valorilor nereușite.

Rezumați această postare cu: