logo

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

În învățare automată , clasificarea este procesul de clasificare a unui set dat de date în diferite categorii. În învățarea automată, pentru a măsura performanța modelului de clasificare, folosim matricea de confuzie . Prin acest tutorial, înțelegeți semnificația matricei de confuzie.

Ce este o matrice de confuzie?

A matricea de confuzie este o matrice care rezumă performanța unui model de învățare automată pe un set de date de testare. Este un mijloc de afișare a numărului de instanțe precise și inexacte pe baza predicțiilor modelului. Este adesea folosit pentru a măsura performanța modelelor de clasificare, care urmăresc să prezică o etichetă categorială pentru fiecare instanță de intrare.

Matricea afișează numărul de instanțe produse de model pe datele de testare.



  • Adevărate pozitive (TP): apar atunci când modelul prezice cu acuratețe un punct de date pozitiv.
  • Adevărate negative (TN) : apar atunci când modelul prezice cu precizie un punct de date negativ.
  • Fals pozitive (FP) : apar atunci când modelul prezice incorect un punct de date pozitiv.
  • Fals negative (FN) : apar atunci când modelul prezice greșit un punct de date negativ.

De ce avem nevoie de o matrice de confuzie?

Atunci când se evaluează performanța unui model de clasificare, o matrice de confuzie este esențială. Oferă o analiză amănunțită a predicțiilor adevărate pozitive, adevărate negative, fals pozitive și fals negative, facilitând o înțelegere mai profundă a modelului. reamintire, acuratețe, precizie, și eficacitatea generală în distincţia de clasă. Atunci când există o distribuție neuniformă a clasei într-un set de date, această matrice este deosebit de utilă în evaluarea performanței unui model dincolo de valorile de bază ale preciziei.

Să înțelegem matricea de confuzie cu exemplele:

Matricea de confuzie Pentru clasificarea binară

O matrice de confuzie 2X2 este afișată mai jos pentru recunoașterea imaginii având o imagine Dog sau Not Dog.

Real

Câine

Nu Câine

Prevăzut

Câine

Adevărat pozitiv
(TP)

Fals pozitiv
(FP)

Nu Câine

șir de matrice c

Fals Negativ
(FN)

Adevărat negativ
(TN)

  • Adevărat pozitiv (TP): Numărul total care are atât valorile prezise, ​​cât și cele reale sunt Dog.
  • Adevărat negativ (TN): Numărul total care are atât valorile prezise, ​​cât și cele reale sunt Not Dog.
  • Fals pozitiv (FP): Numărul total care prezice este câine în timp ce de fapt nu este câine.
  • Fals Negativ (FN): Numărul total care prezice nu este câine, în timp ce de fapt, este câine.

Exemplu pentru probleme de clasificare binară

Index

1

2

3

4

5

6

7

8

9

10

Real

Câine

Câine

Câine

Nu Câine

Câine

Nu Câine

Câine

Câine

Nu Câine

Nu Câine

Prevăzut

Câine

Nu Câine

Câine

Nu Câine

Câine

Câine

Câine

Câine

Nu Câine

Nu Câine

Rezultat

Oraș

FN

Oraș

TN

Oraș

FP

Oraș

Oraș

TN

subșir șir

TN

  • Numărul real de câini = 6
  • Numărul real nu de câini = 4
  • Numărări adevărate pozitive = 5
  • Numărări false pozitive = 1
  • Numărări adevărate negative = 3
  • Numărări false negative = 1

Prevăzut

Câine

Nu Câine


Real

Câine

Adevărat pozitiv
(TP =5)

Fals Negativ
(FN =1)

Nu Câine

Fals pozitiv
(FP=1)

Adevărat negativ
(TN=3)

Valori bazate pe Confusion Matrix Data

1. Precizie

Precizia este utilizată pentru a măsura performanța modelului. Este raportul dintre numărul total de instanțe corecte și numărul total de instanțe.

Accuracy = frac {TP+TN}{TP+TN+FP+FN}

Pentru cazul de mai sus:

Precizie = (5+3)/(5+3+1+1) = 8/10 = 0,8

java scan.nextstring

2. Precizie

Precizie este o măsură a cât de precise sunt predicțiile pozitive ale unui model. Este definit ca raportul dintre predicțiile pozitive adevărate și numărul total de predicții pozitive făcute de model.

ext{Precision} = frac{TP}{TP+FP}

Pentru cazul de mai sus:

Precizie = 5/(5+1) =5/6 = 0,8333

3. Rechemare

Amintiți-vă măsoară eficiența unui model de clasificare în identificarea tuturor instanțelor relevante dintr-un set de date. Este raportul dintre numărul de instanțe adevărate pozitive (TP) și suma instanțelor adevărate pozitive și fals negative (FN).

ext{Recall} = frac{TP}{TP+FN}

Pentru cazul de mai sus:

Rechemare = 5/(5+1) =5/6 = 0,8333

Notă: Folosim precizia atunci când dorim să minimizăm falsele pozitive, cruciale în scenarii precum detectarea e-mailurilor spam în care clasificarea greșită a unui mesaj non-spam ca spam este costisitoare. Și folosim reamintirea atunci când minimizarea fals-negative este esențială, ca în diagnosticele medicale, unde identificarea tuturor cazurilor pozitive reale este critică, chiar dacă are ca rezultat unele fals pozitive.

4. F1-Scor

Scor F1 este utilizat pentru a evalua performanța generală a unui model de clasificare. Este mijlocul armonic al preciziei și reamintirii,

ext{F1-Score} = frac {2 cdot Precision cdot Recall}{Precision + Recall}

Pentru cazul de mai sus:

Scor F1: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333

Echilibrăm precizia și reamintirea cu scorul F1 atunci când este necesar un compromis între minimizarea fals pozitive și false negative, cum ar fi în sistemele de recuperare a informațiilor.

5. Specific:

Specificitatea este o altă măsură importantă în evaluarea modelelor de clasificare, în special în clasificarea binară. Măsoară capacitatea unui model de a identifica corect cazurile negative. Specificitatea este, de asemenea, cunoscută sub denumirea de rata negativă adevărată.

ext{Specificity} = frac{TN}{TN+FP}

Specificitate=3/(1+3)​=3/4=0,75

6. Eroare de tip 1 și tip 2

Eroare de tip 1

Eroarea de tip 1 apare atunci când modelul prezice o instanță pozitivă, dar este de fapt negativă. Precizia este afectată de false pozitive, deoarece este raportul dintre adevăratele pozitive și suma dintre adevăratele pozitive și falsele pozitive.

ext{Type 1 Error} = frac{FP}{TN+FP}

De exemplu, într-un scenariu de sală de judecată, o eroare de tip 1, deseori denumită fals pozitiv, apare atunci când instanța condamnă în mod eronat o persoană ca vinovat atunci când, în adevăr, este nevinovat de presupusa crimă. Această greșeală gravă poate avea consecințe profunde, ducând la pedepsirea pe nedrept a unei persoane nevinovate care nu a săvârșit infracțiunea în cauză. Prevenirea erorilor de tip 1 în procedurile judiciare este esențială pentru a se asigura că justiția este îndeplinită cu acuratețe și că persoanele nevinovate sunt protejate de vătămări și pedepse nejustificate.

Eroare de tip 2

Eroarea de tip 2 apare atunci când modelul nu reușește să prezică o instanță pozitivă. Reamintirea este direct afectată de fals negative, deoarece este raportul dintre adevăratele pozitive și suma dintre adevăratele pozitive și falsele negative.

În contextul testării medicale, o eroare de tip 2, adesea cunoscută ca fals negativ, apare atunci când un test de diagnostic nu reușește să detecteze prezența unei boli la un pacient care o are cu adevărat. Consecințele unei astfel de erori sunt semnificative, deoarece poate avea ca rezultat un diagnostic întârziat și un tratament ulterior.

ext{Type 2 Error} = frac{FN}{TP+FN}

Precizia pune accent pe minimizarea fals-pozitivelor, în timp ce reamintirea se concentrează pe minimizarea fals-negative.

Implementarea matricei de confuzie pentru clasificarea binară folosind Python

Pasul 1: importați bibliotecile necesare

Piton import numpy as np from sklearn.metrics import confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt>

Pasul 2: Creați matricea NumPy pentru etichetele reale și prezise

Piton actual = np.array( ['Dog','Dog','Dog','Not Dog','Dog','Not Dog','Dog','Dog','Not Dog','Not Dog']) predicted = np.array( ['Dog','Not Dog','Dog','Not Dog','Dog','Dog','Dog','Dog','Not Dog','Not Dog'])>

Pasul 3: Calculați matricea de confuzie

Piton cm = confusion_matrix(actual,predicted)>

Pasul 4: Trasează matricea de confuzie cu ajutorul hărții termice seaborn

Piton cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Dog','Not Dog'], yticklabels=['Dog','Not Dog']) plt.xlabel('Prediction',fontsize=13) plt.ylabel('Actual',fontsize=13) plt.title('Confusion Matrix',fontsize=17) plt.show()>

Ieșire :

Pasul 5: Raportul de clasificări bazat pe valorile de confuzie

Piton print(classification_report(actual, predicted))>

Ieșire :

rechemare de precizie suport scor f1 Câine 0,83 0,83 0,83 6 Nu Câine 0,75 0,75 0,75 4 precizie 0,80 10 medie macro 0,79 0,79 0,79 10 medie ponderată 0,80 0,80 0.80 0.80 0.

Matrice de confuzie pentru clasificarea multiclasă

Acum, să considerăm că există trei clase. O matrice de confuzie 3X3 este prezentată mai jos pentru imaginea care are trei clase.

Aici, TP= Adevărat Pozitiv, FP= Fals Pozitiv, FN= Fals Negativ.

IndexRealPrevăzutOrașFPFN
1PisicăPisică100
2CâineCâine100
3CalCâine011
4PisicăPisică100
5CâineCâine100
6PisicăPisică100
7CâineCâine100
8CalCal100
9CalCal100
10PisicăCâine011
  • Adevărate pozitive (TP): 8 (1+1+0+1+1+1+1+1+1+0)
  • Fals pozitive (FP): 2 (0+0+1+0+0+0+0+0+0+1)
  • False negative (FN): 2 (0+0+1+0+0+0+0+0+0+1)

O matrice de confuzie 3X3 este prezentată mai jos pentru trei clase.

Prevăzut

Pisică

Câine

Cal


Real

Pisică

cum să obțineți emoji-uri Apple pe Android

Oraș

FP

FN

Câine

FP

Oraș

FN

Cal

FN

FP

Oraș

Rezumat la nivel de clasă:

  • Pentru pisică: [TP=3,FP=0,FN=1]
    • Index 1: Adevărat pozitiv (pisica reală, pisica prezisă)
    • Index 4: Adevărat pozitiv (pisica reală, pisica prezis)
    • Index 6: Adevărat pozitiv (pisica reală, pisica prezisă)
    • Index 10: fals negativ (pisica reală, câine prezis)
  • Pentru câine: [TP=3,FP=2,FN=0]
    • Index 2: Adevărat pozitiv (câine real, câine prezis)
    • Index 5: Adevărat pozitiv (câine real, câine prezis)
    • Index 7: Adevărat pozitiv (câine real, câine prezis)
    • Index 10: fals pozitiv (pisica reală, câine prezis)
    • Index 3: fals pozitiv (cal real, câine prezis)
  • Pentru cal: [TP=2,FP=0,FN=1]
    • Index 8: Adevărat pozitiv (cal real, cal prezis)
    • Index 9: Adevărat pozitiv (Cal real, Cal prezis)
    • Index 3: fals negativ (cal real, câine prezis)

Apoi, matricea de confuzie va fi:

Prevăzut

Pisică

Câine

Cal


Real

Pisică

TP(3)

FP(1)

FN(0)

Câine

FN(0)

cum să descărcați video de pe youtube vlc

TP(3)

FN(1)

Cal

FN(1)

FP(1)

TP(2)

Implementarea matricei de confuzie pentru clasificarea binară folosind Python

Pasul 1: importați bibliotecile necesare

Piton import numpy as np from sklearn.metrics import confusion_matrix, classification_report import seaborn as sns import matplotlib.pyplot as plt>

Pasul 2: Creați matricea NumPy pentru etichetele reale și prezise

Piton actual = np.array( ['Cat', 'Dog', 'Horse', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Cat']) predicted = np.array( ['Cat', 'Dog', 'Dog', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Dog'])>

Pasul 3: Calculați matricea de confuzie

Piton cm = confusion_matrix(actual,predicted)>

Pasul 4: Trasează matricea de confuzie cu ajutorul hărții termice seaborn

Piton cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Cat', 'Dog', 'Horse'], yticklabels=['Cat', 'Dog', 'Horse']) plt.xlabel('Prediction', fontsize=13) plt.ylabel('Actual', fontsize=13) plt.title('Confusion Matrix', fontsize=17) plt.show()>

Ieșire:

Pasul 5: Raportul de clasificări bazat pe valorile confuziei

Piton print(classification_report(actual, predicted))>

Ieșire :

Precizie recall f1-score support Pisică 1,00 0,75 0,86 4 Câine 0,60 1,00 0,75 3 Cal 1,00 0,67 0,80 3 precizie 0,80 10 macro medie 0,87 0,81 0,80 0,81 0,80 g 188 0,80 ponderat

Concluzie

În concluzie, matricea de confuzie este un instrument esențial pentru evaluarea eficacității modelelor de clasificare. Perspectivele privind acuratețea, precizia, reamintirea și eficacitatea generală a unui model în clasificarea cazurilor sunt oferite de analiza amănunțită a predicțiilor adevărate pozitive, adevărate negative, fals pozitive și fals negative pe care le oferă. Articolul a oferit exemple pentru a ilustra calculul fiecărei valori și a discutat despre importanța acesteia. De asemenea, a demonstrat modul în care matricele de confuzie pot fi implementate în Python pentru scenarii de clasificare binară și multiclasă. Practicienii pot lua decizii bine informate cu privire la performanța modelului - în special atunci când se ocupă de distribuțiile de clase dezechilibrate - prin înțelegerea și aplicarea acestor valori.

Întrebări frecvente despre Confusion Matrix

Î. Cum se interpretează o matrice de confuzie?

O matrice de confuzie rezumă performanța unui model de clasificare, cu intrări reprezentând instanțe adevărate pozitive, adevărate negative, fals pozitive și fals negative, oferind informații despre acuratețea și erorile modelului.

Î. Care sunt avantajele utilizării matricei Confusion?

Matricea de confuzie oferă o evaluare cuprinzătoare a performanței unui model de clasificare, oferind perspective asupra pozitive adevărate, negative adevărate, pozitive false și negative false, ajutând analiza nuanțată dincolo de acuratețea de bază.

Q. Care sunt câteva exemple de aplicații ale matricei de confuzie?

Matricele de confuzie găsesc aplicații în diverse domenii, inclusiv diagnosticul medical (identificarea pozitive/negative adevărate/false pentru boli), detectarea fraudelor, analiza sentimentelor și evaluarea acurateței recunoașterii imaginii.

Î. Ce este diagrama matricei de confuzie?

O diagramă matrice de confuzie reprezintă vizual performanța unui model de clasificare. Afișează valorile adevărate pozitive, adevărate negative, fals pozitive și fals negative într-un format de matrice structurată.

Î. Care sunt cele trei valori ale matricei de confuzie?

Cele trei valori ale matricei de confuzie sunt pozitive adevărate (instanțele pozitive prezise corect), negative adevărate (instanțele negative prezise corect) și fals pozitive (instanțele pozitive prezise incorect).