Forvirringsmatrix i maskinindlæring: Din one-stop-løsning



Denne artikel fokuserer på Confusion Matrix, som er et af de vigtigste aspekter af enhver maskinlæringsalgoritme, der bruges til at evaluere dens nøjagtighed.

I , har vi normalt 2 forskellige typer brugssager, og problem. Forvirringsmatrix hjælper med at beregne nøjagtigheden af ​​klassificeringsmodellen, som indirekte hjælper os med at beskrive klassificeringsmodelens præstationer. Det er det vigtigste skridt, når det kommer til at evaluere en model. Jeg vil dække følgende emner i denne artikel:

1. Hvad er en forvirringsmatrix?





2. Nøjagtighed og komponenter i forvirringsmatrix

3. Præcision, tilbagekaldelse og F-måling



4. Oprettelse af en forvirringsmatrix ved hjælp af Python og Sklearn

Hvad er en forvirringsmatrix?

En forvirringsmatrix er sammenligningsoversigten over de forudsagte resultater og de faktiske resultater i ethvert tilfælde af klassificeringsproblemer. Sammenligningsoversigten er yderst nødvendigt for at bestemme ydeevnen for modellen, efter at den er trænet med nogle træningsdata. Accuracy-Confusion-MatrixFor en binær klassifikationsanvendelsessag er en forvirringsmatrix en 2 × 2-matrix, som er vist nedenfor
Forudsagt klasse 1-værdi EG: 1 Forudsagt klasse 2-værdi EG: 0
Faktisk klasse 1-værdi

EG: 1

TP (sandt positiv) FN (falsk negativ)
Faktisk klasse 2-værdi



EG: 0

FP (falsk positiv) TN (sandt negativt)

Fra ovenstående figur:
Vi har,

  • Faktisk klasse 1-værdi = 1, der svarer til positiv værdi i et binært resultat.
  • Faktisk klasse 2-værdi = 0, der svarer til en negativ værdi i binært resultat.

Venstre indeks for forvirringsmatrixen angiver grundlæggende de faktiske værdier, og den øverste kolonne angiver de forudsagte værdier.

Der er forskellige komponenter, der findes, når vi opretter en forvirringsmatrix. Komponenterne er nævnt nedenfor

bedste ide til Java-udvikling

Positiv (P): Det forudsagte resultat er positivt (eksempel: billede er en kat)

Negativ (N): det forudsagte resultat er negativt (eksempel: billeder er ikke en kat)

Ægte positive (TP): Her angiver TP grundlæggende det forudsagte, og de faktiske værdier er 1 (Sand)

Ægte Negativ (TN): Her angiver TN den forudsagte, og den aktuelle værdi er 0 (falsk)

Falsk negativ (FN): Her angiver FN, at den forudsagte værdi er 0 (negativ), og den faktiske værdi er 1. Her stemmer begge værdier ikke overens. Derfor er det falsk negativt.

Falsk Positiv (FP): Her angiver FP, at den forudsagte værdi er 1 (positiv) og den faktiske værdi er 0. Også her er begge værdier uoverensstemmende. Derfor er det falsk positivt.

Nøjagtighed og komponenter i forvirringsmatrix

Når forvirringsmatrixen er oprettet, og vi bestemmer alle komponentværdierne, bliver det ret let for os at beregne nøjagtigheden. Så lad os se på komponenterne for at forstå dette bedre.
  • Klassifikationsnøjagtighed

Fra ovenstående formel er summen af ​​TP (True Positive) og TN (True Negative) de korrekte forudsagte resultater. For at beregne nøjagtigheden i procent deler vi derfor med alle de andre komponenter. Der er dog nogle problemer i nøjagtigheden, og vi kan ikke helt stole på det.

Lad os overveje, at vores datasæt er fuldstændig ubalanceret. I dette scenario kan 98% nøjagtighed være god eller dårlig baseret på problemangivelsen. Derfor har vi nogle flere nøgleudtryk, der hjælper os med at være sikre på nøjagtigheden, vi beregner. Vilkårene er som angivet nedenfor:

  • TPR (True Positive Rate) eller følsomhed:

Ægte positive hastighed, som også er kendt som følsomhed, måler procentdelen af ​​sand positiv med hensyn til de samlede faktiske positive, som er angivet med (TP + FN)

Forudsagt klasse 1-værdi EG: 1 Forudsagt klasse 2-værdi EG: 0 Total
Faktisk klasse 1-værdi

EG: 1

TP (sandt positiv) FN (falsk negativ) Samlede faktiske positive
Faktisk klasse 2-værdi

EG: 0

FP (falsk positiv)TN (sandt negativt)Samlede faktiske negativer
TPR = sandt positivt / (sandt positivt + falskt negativt
  • TNR (True Negative Rate) eller specificitet:

Sand negativ sats eller specificitet måler andelen af ​​faktiske negativer i forhold til de samlede negative

Forudsagt klasse 1-værdi EG: 1 Forudsagt klasse 2-værdi EG: 0 Total
Faktisk klasse 1-værdi

hvordan man afslutter et Java-program

EG: 1

TP (sandt positiv)FN (falsk negativ)Samlede faktiske positive
Faktisk klasse 2-værdi

EG: 0

FP (falsk positiv) TN (sandt negativt) Samlede faktiske negativer

TNR = sand negativ / (sand negativ + falsk positiv)

  • Falsk positiv sats (FPR):

Falsk positiv hastighed er procentdelen af ​​forudsagt falsk positiv (FP) til det samlede antal forudsagte positive resultater (TP + FP).

Forudsagt klasse 1-værdi EG: 1 Forudsagt klasse 2-værdi EG: 0
Faktisk klasse 1-værdi EG: 1 TP (sandt positiv) FN (falsk negativ)
Faktisk klasse 2-værdi EG: 0 FP (falsk positiv) TN (sandt negativt)
Summen af ​​den samlede forudsagte positive Summen af ​​det samlede forudsagte negative
FPR = Falsk Positiv / (Sand Positiv + Falsk Positiv)
  • Falsk negativ sats (FNR):

Falsk negativ sats er procentdelen af ​​forudsagt falsk negativ (FP) i forhold til det samlede antal forudsagte negative resultater (TN + FN).

Forudsagt klasse 1-værdi EG: 1 Forudsagt klasse 2-værdi EG: 0
Faktisk klasse 1-værdi EG: 1TP (sandt positiv) FN (falsk negativ)
Faktisk klasse 2-værdi EG: 0FP (falsk positiv) TN (sandt negativt)
Summen af ​​den samlede forudsagte positive Summen af ​​det samlede forudsagte negative
FNR = Falsk negativ / (Falsk negativ + sand negativ)

Præcision, tilbagekaldelse og F-foranstaltning

  • Minde om:

En tilbagekaldelse svarer til den sande positive hastighed, og det er forholdet mellem det samlede antal korrekt forudsagte positive værdier (TP) og alle de positive værdier.

  • Præcision:

Præcisionen angiver grundlæggende alle de punkter, som modellen forudsagde at være positive, og hvilken procentdel af dem der faktisk er positive.

Præcision og tilbagekaldelse er måleresultater, der fokuserer på den positive klasse som vist i ovenstående formler.

  • F-mål

Så F-Measure er en teknik, der kombinerer både Precision og Recall-teknikken, og den bruger harmonisk middelværdi i stedet for det sædvanlige aritmetiske middelværdi, hvorfor de ekstreme værdier straffes. F-målingen kaldes også som F1-score og er givet ved nedenstående formel.

Lad os overveje et eksempel og se, hvordan vi kan beregne nøjagtighed, præcision, tilbagekaldelse og F1-score.

N = 165 Forudsagt JA Forudsagt NEJ
Faktisk JA TP = 150 FN = 10
Nuværende NO FP = 20 TN = 100
    • Nøjagtighed = (TP + TN) / (TP + TN + FP + FN) = (150 + 100) / (150 + 100 + 20 + 10) = 0,89
    • Recall = TP / (TP + FN) = 150 / (150 + 10) = 0,93
    • Præcision: TP / (TP + FP) = 150 / (150 + 20) = 0,88

  • F-mål = (2 * Recall * Precision) / (Recall + Presision) = (2 * 0,93 * 0,88) / (0,93 + 0,88) = 0,90

Oprettelse af en forvirringsmatrix ved hjælp af Python og Sklearn

Nu ser vi et eksempel på, hvordan vi kan oprette en forvirringsmatrix ved hjælp af python sammen med sklearn-biblioteket.

en. Oprindeligt opretter vi en liste over de faktiske data og forudsiges at kontrollere nøjagtigheden som vist nedenfor

# Python-script til oprettelse af forvirringsmatrix. aktuelle_data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] forudsagt_data = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1]

2. Vi skal importere forvirringsmatrixen fra sklearn-biblioteket som vist nedenfor:

fra sklearn.metrics importerer confusion_matrix

3. Derefter opretter vi forvirringsmatrixen som vist nedenfor:

final_results = confusion_matrix (faktisk_data, forudsagt_data)

Fire. Nu kan vi gå videre og beregne nøjagtigheden ved at importere biblioteket som vist nedenfor:

fra sklearn.metrics importerer nøjagtighed_score nøjagtighed = nøjagtighed_score (faktisk_data, forudsagt_data)

5. Endelig beregner vi F1-score eller F-måling som vist nedenfor:

fra sklearn.metrics import klassifikationsrapportrapport = klassifikationsrapport (faktisk_data, forudsagt_data)

Nedenfor er den komplette kode:

hvad er en nøglefejl
aktuelle_data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] forudsagt_data = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1] fra sklearn.metrics import confusion_matrix final_results = confusion_matrix (actual_data, predicted_data) print (final_results) from sklearn.metrics import accuracy_score accuracy = accuracy_score (actual_data, predicted_data) from sklearn.metrics import klassificering_rapport rapport = klassificeringsrapport ( faktisk_data, forudsagt_data) Udskriv (nøjagtighed) Udskriv (rapport)

matrix

Så med dette kommer vi til slutningen af ​​denne artikel. Jeg håber, at al din forvirring om forvirringsmatrixen nu er løst.

Edureka's hjælper dig med at få ekspertise inden for forskellige maskinlæringsalgoritmer som regression, klyngedannelse, beslutningstræer, tilfældig skov, Naïve Bayes og Q-Learning. Denne maskinlæring ved hjælp af Python-træning udsætter dig for begreberne Statistik, tidsserier og forskellige klasser af maskinlæringsalgoritmer som overvågede, ikke-overvågede og forstærkningsalgoritmer. I hele datavidenskabscertificeringskurset løser du virkelige casestudier om medier, sundhedspleje, sociale medier, luftfart, HR.