Matricea de confuzie în R: Cum se face și se calculează [cu exemple]

Publicat: 2021-03-09

R a apărut ca unul dintre cele mai importante pachete de software pentru analiza datelor și statistice în prezent. Este un mediu open-source preferat pentru capabilitățile sale puternice de calcul, vizuale și grafice. Dacă sunteți student la inginerie, un profesionist în analiză de afaceri sau cineva cu un interes puternic pentru știința datelor, învățarea limbajului de programare R vă poate ajuta în multe feluri.

În acest articol, vom acoperi câteva concepte de bază ale învățării automate prin această suită integrată. Mai precis, vom discuta cum se calculează o matrice de confuzie în R .

Dar înainte de a trece la aspecte tehnice, să înțelegem mai întâi de ce am ales R în acest scop. Din cauza următoarelor beneficii, acest limbaj de programare câștigă popularitate printre statisticienii și oamenii de știință de date din întreaga lume:

  • Reproductibil: Cu R, puteți reproduce rapoarte și scrie cod reutilizabil
  • Partajabil: are o curbă de învățare scăzută, ceea ce deschide căi de colaborare
  • Repetabil: oricine poate nu numai să înțeleagă ce ați făcut, ci și să repete pașii pentru a crea aceleași funcții pe mașinile sale

Utilizarea limbajului R în domeniul învățării automate a crescut și din motivele de mai sus. Nu trebuie să fii un programator expert pentru a înțelege sintaxa sa. Prin urmare, vă prezentăm câteva elemente fundamentale în secțiunea următoare.

Cuprins

Ce este o matrice de confuzie?

O matrice de confuzie, sau o matrice de erori, se ocupă de problema de clasificare standard în statistică. Acesta cuprinde un aspect de tabel specific care facilitează analiștilor de date să vizualizeze modul în care funcționează un algoritm. Acest lucru se aplică în special algoritmilor de învățare supravegheată.

Pentru a elabora mai departe, o matrice de confuzie urmează un format N x N, unde N se referă la numărul de clase țintă. Puteți utiliza acest tabel sau matrice pentru a evalua performanța unui model de clasificare. Acest lucru este posibil deoarece matricea compară valorile prezise cu valorile țintă.

Pe scurt, puteți descrie modul în care modelul dvs. de învățare automată, un clasificator, în acest caz, funcționează pe un set de date de testare (pentru care aveți deja valorile adevărate).

Pentru a înțelege această metodă, trebuie să fii familiarizat cu următorii termeni:

  • Adevărat pozitiv (TP): Valorile pozitive sunt prezise corect
  • Fals pozitiv (FP): valorile negative sunt incorect prezise ca pozitive
  • Fals Negativ (FN): Valori pozitive prezise ca negative
  • True Negative (TN): valori negative prezise ca valori negative reale

Să ne uităm la câteva exemple pentru a obține mai multă claritate.

Exemple de matrice de confuzie

  • Adevărat pozitiv

Când ai prezis că India va câștiga Cupa Mondială de Cricket și a câștigat.

  • Fals pozitiv

Când te așteptai ca India să câștige, dar a pierdut.

  • Fals Negativ

Când ați prezis că Franța nu va câștiga, dar a câștigat.

  • Adevărat negativ

Când ai proiectat că India „nu va câștiga” Cupa Mondială de Cricket și a pierdut seria în viața reală.

Pe măsură ce mergem mai departe, ar trebui să vă amintiți că toate valorile prezise sunt descrise ca: pozitive, negative, adevărate și false.

Cum se calculează matricea de confuzie în R?

Luați în considerare un scenariu în care aveți o listă de valori așteptate sau cunoscute și o altă listă de predicții din modelul dvs. de învățare automată. În R, puteți calcula matricea de confuzie folosind o funcție simplă din biblioteca caret: confusionMatrix(). Nu numai că poate calcula matricea, dar poate returna și un raport detaliat pentru rezultate.

Puteți urma pașii menționați mai jos pentru a practica procesul de data mining:

  • Testați setul de date dat cu rezultatele așteptate.
  • Preziceți rândurile setului de date de testare.
  • Determinați numărul total de predicții corecte și incorecte pentru fiecare clasă.

După ce ați făcut acest lucru, veți găsi numerele organizate în felul următor:

  • Fiecare rând al matricei va corespunde cu o clasă prezisă și fiecare coloană va fi legată de o clasă reală.
  • Numărul total de clasificări corecte și incorecte sunt reflectate în tabel, împreună cu sumele pentru fiecare clasă.

Să presupunem că aveți 10 persoane împărțite în două clase, bărbați și femei. Trebuie să aranjați informațiile ca o matrice de confuzie când știți că 2 bărbați au fost clasificați drept femei, în timp ce 1 femeie a fost clasificată ca bărbat.

femei bărbați

femei 3 1

bărbați 2 4

Aici, valorile corecte sunt organizate într-o linie diagonală din stânga sus până în dreapta jos a matricei (3 + 4). Rezultatele ne spun că există mai multe erori în prezicerea membrilor bărbați ca femei decât în ​​prezicerea femeilor ca bărbați. Algoritmul a făcut 7 predicții corecte din 10 rezultate posibile, ceea ce înseamnă că are o acuratețe de 70%.

Ghid pentru realizarea și calcularea unei matrice de confuzie în R

După cum puteți observa, funcția matricei de confuzie este un instrument util pentru examinarea posibilelor rezultate ale predicțiilor dvs. Deci, înainte de a începe să vă creați matricea, mai întâi trebuie să aveți o „taiere” a valorilor probabilității. Cu alte cuvinte, trebuie să marcați un prag pentru a vă transforma probabilitățile în predicții de clasă.

Pentru a face acest lucru, puteți utiliza funcția ifelse(). De exemplu:

predictie_clasa <-

ifelse (probabilitate_predicție > 0,50,

„clasa_pozitivă”,

„clasa_negativă”

)

De asemenea, puteți scrie funcția table() pentru a face un tabel de contingență în baza R. Cu toate acestea, funcția confusionMatrix() este cunoscută pentru a produce statistici auxiliare valoroase.

Următorul pas este calcularea matricei de confuzie și a altor statistici asociate. Aici, veți avea nevoie de rezultatele prezise și reale. Luați, de exemplu, afirmația de mai jos:

confusionMatrix (prevăzut, real)

Acum, ar trebui să continuați cu transformarea predicțiilor numerice într-un vector de predicții de clasă, sat p_class. Să presupunem că doriți să utilizați o limită de 0,50.

De asemenea, în timp ce faceți predicții, nu uitați să numiți clasele pozitive și negative cu indicatori separați. Să numim clasele pozitive „T” și să le numim pe cele negative ca „L”. Acest lucru se face pentru a potrivi clasele cu datele originale.

Acum că aveți o clasă p și valori reale în setul de date de testare, puteți începe să vă creați matricea de confuzie, apelând funcția confusionMatrix().

Alternativ, poate doriți să fiți sigur de acuratețea modelului dvs. de extragere a datelor. În astfel de cazuri, este recomandabil să folosiți un prag de 0,10, nu 0,90. ulterior, puteți continua cu aceiași pași ca și în exercițiul anterior.

Cu noile tale cursuri anticipate, poți repeta acest apel:

pred <- ifelse(probabilitate > prag, „T”, „L”)

În cele din urmă, puteți utiliza funcția confusionMatrix() în caret:

confusionMatrix (prevăzut, real)

Cu aceasta, încheiem acest tutorial despre funcția matricei de confuzie pentru învățarea automată în R. Sper că l-ai găsit de ajutor!

Concluzie

Dacă sunteți curios să aflați despre R, știința datelor, consultați Diploma noastră PG în știința datelor, care este creată pentru profesioniști care lucrează și oferă peste 10 studii de caz și proiecte, ateliere practice practice, mentorat cu experți din industrie, 1 cu mentori din industrie, peste 400 de ore de învățare și asistență profesională cu firme de top.

Care este nevoie de a crea o matrice de confuzie?

Următoarele motive ne prezintă beneficiile unei matrice de confuzie și modul în care aceasta tratează problemele de performanță.
1. Matricea de confuzie este necesară pentru a eradica problema cu acuratețea clasificării. Raportul de clasificare provoacă adesea unele probleme prin ascunderea detaliilor necesare ale modelului.
2. Matricea de confuzie oferă o perspectivă asupra predicțiilor și tipului de erori făcute în modelul de clasificare. Predicțiile corecte și greșite sunt prezentate într-un mod rezumat.
3. Erorile și tipurile lor sunt clasificate pentru a vă oferi o înțelegere a performanței modelului dvs.

Cum se calculează matricea de confuzie în R?

Matricea de confuzie din R poate fi calculată utilizând funcția „confusionMatrix()” a bibliotecii caret. Această funcție nu numai că calculează matricea, ci returnează și un raport detaliat al matricei. Trebuie să urmați câțiva pași pentru a vă calcula matricea de confuzie.
1. Testează-ți setul de date.
2. Preziceți numărul total de rânduri.
3. Preziceți totalul predicții corecte și incorecte pentru fiecare clasă.
Odată ce ați extras datele, veți obține numerele organizate pe rânduri. Rândurile vor fi conectate la clasa prezisă, în timp ce coloanele vor fi conectate la clasa reală. Valorile corecte vor fi într-o linie diagonală. Adăugați toate valorile și veți obține procentul de acuratețe al matricei dvs.

Cum se măsoară performanța într-o matrice de confuzie?

Puteți calcula rata de precizie a unui model utilizând o matrice de confuzie 2x2. Următoarea formulă vă va obține rata de succes sau rata de precizie:
Precizie = (TP+TN)/(TP+TN+FP+FN)
Unde, TP = adevărat pozitiv, TN = adevărat negativ, FP = fals pozitiv, FN = fals negativ
Rata de eroare a modelului dvs. poate fi calculată și cu formula de calcul a ratei care este:
Precizie = (TP+TN)/(TP+TN+FP+FN) = 1-Precizie
Conceptul de rata de eroare este foarte simplu. Să presupunem că modelul tău are o rată de precizie de 80%, atunci rata de eroare a modelului tău va fi de 20%.