logo

Forvirringsmatrix i maskinlæring

I maskinelæring , klassificering er processen med at kategorisere et givet sæt data i forskellige kategorier. I maskinlæring bruger vi for at måle klassifikationsmodellens ydeevne forvirringsmatrix . Gennem denne tutorial skal du forstå betydningen af ​​forvirringsmatricen.

Hvad er en forvirringsmatrix?

EN forvirringsmatrix er en matrix, der opsummerer ydeevnen af ​​en maskinlæringsmodel på et sæt testdata. Det er et middel til at vise antallet af nøjagtige og unøjagtige forekomster baseret på modellens forudsigelser. Det bruges ofte til at måle ydeevnen af ​​klassifikationsmodeller, som har til formål at forudsige en kategorisk etiket for hver inputforekomst.

Matrixen viser antallet af forekomster produceret af modellen på testdataene.



  • Sande positive (TP): opstår, når modellen nøjagtigt forudsiger et positivt datapunkt.
  • Sande negative (TN) : opstår, når modellen nøjagtigt forudsiger et negativt datapunkt.
  • Falske positive (FP) : opstår, når modellen forudsiger et positivt datapunkt forkert.
  • Falsk negativer (FN) : opstår, når modellen fejlforudsiger et negativt datapunkt.

Hvorfor har vi brug for en forvirringsmatrix?

Når man vurderer en klassifikationsmodels ydeevne, er en forvirringsmatrix essentiel. Det tilbyder en grundig analyse af sande positive, sande negative, falske positive og falske negative forudsigelser, hvilket letter en mere dybtgående forståelse af en models genkaldelse, nøjagtighed, præcision, og overordnet effektivitet i klasseforskel. Når der er en ujævn klassefordeling i et datasæt, er denne matrix særlig nyttig til at evaluere en models ydeevne ud over grundlæggende nøjagtighedsmålinger.

Lad os forstå forvirringsmatricen med eksemplerne:

Forvirringsmatrix Til binær klassifikation

En 2X2 forvirringsmatrix er vist nedenfor for billedgenkendelsen med et hundebillede eller ikke hundebillede.

Faktiske

Hund

Ikke hund

Forudsagt

Hund

Ægte positiv
(TP)

Falsk positiv
(FP)

Ikke hund

Falsk negativ
(FN)

Ægte negativ
(TN)

  • Sand positiv (TP): Det er det samlede antal, der har både forudsagte og faktiske værdier, er Hund.
  • Sand negativ (TN): Det er det samlede antal, der har både forudsagte og faktiske værdier, som ikke er hund.
  • Falsk positiv (FP): Det er det samlede antal, hvis forudsigelse er hund, mens det faktisk ikke er hund.
  • Falsk negativ (FN): Det er det samlede antal, hvis forudsigelse ikke er hund, mens det faktisk er hund.

Eksempel på binære klassifikationsproblemer

Indeks

1

2

3

4

5

6

7

8

9

10

Faktiske

Hund

Hund

Hund

Ikke hund

Hund

Ikke hund

Hund

Hund

Ikke hund

Ikke hund

Forudsagt

Hund

Ikke hund

Hund

Ikke hund

Hund

Hund

Hund

Hund

Ikke hund

Ikke hund

Resultat

By

FN

By

TN

By

FP

By

By

TN

TN

  • Faktiske hundetal = 6
  • Faktisk ikke hundetal = 4
  • Ægte positive tal = 5
  • Falske positive tal = 1
  • Sande negative tal = 3
  • Falske negative tal = 1

række af strenge i c

Forudsagt

Hund

Ikke hund


Faktiske

Hund

Ægte positiv
(TP =5)

Falsk negativ
(FN =1)

Ikke hund

Falsk positiv
(FP=1)

Ægte negativ
(TN=3)

Metrics baseret på Confusion Matrix Data

1. Nøjagtighed

Nøjagtighed bruges til at måle modellens ydeevne. Det er forholdet mellem Total korrekte forekomster og det samlede antal forekomster.

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

For ovenstående tilfælde:

Nøjagtighed = (5+3)/(5+3+1+1) = 8/10 = 0,8

2. Præcision

Præcision er et mål for, hvor nøjagtige en models positive forudsigelser er. Det er defineret som forholdet mellem sande positive forudsigelser og det samlede antal positive forudsigelser lavet af modellen.

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

For ovenstående tilfælde:

Præcision = 5/(5+1) =5/6 = 0,8333

3. Genkald

Minde om måler effektiviteten af ​​en klassifikationsmodel til at identificere alle relevante forekomster fra et datasæt. Det er forholdet mellem antallet af sand positive (TP) tilfælde og summen af ​​sand positive og falsk negative (FN) tilfælde.

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

For ovenstående tilfælde:

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

Bemærk: Vi bruger præcision, når vi ønsker at minimere falske positiver, hvilket er afgørende i scenarier som spam-e-mail-detektion, hvor det er dyrt at klassificere en ikke-spam-meddelelse som spam. Og vi bruger tilbagekaldelse, når det er vigtigt at minimere falske negativer, som i medicinske diagnoser, hvor det er afgørende at identificere alle faktiske positive tilfælde, selvom det resulterer i nogle falske positive.

4. F1-Score

F1-score bruges til at evaluere den overordnede præstation af en klassifikationsmodel. Det er det harmoniske middel af præcision og genkaldelse,

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

For ovenstående tilfælde:

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

Vi balancerer præcision og tilbagekaldelse med F1-score, når en afvejning mellem at minimere falske positive og falske negative er nødvendig, såsom i informationssøgningssystemer.

5. Specificitet:

Specificitet er en anden vigtig metrik i evalueringen af ​​klassifikationsmodeller, især i binær klassifikation. Det måler en models evne til korrekt at identificere negative tilfælde. Specificitet er også kendt som den sande negative sats.

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

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

6. Type 1 og Type 2 fejl

Type 1 fejl

Type 1 fejl opstår, når modellen forudsiger en positiv instans, men den er faktisk negativ. Præcision påvirkes af falske positiver, da det er forholdet mellem sande positive og summen af ​​sande positive og falske positive.

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

For eksempel, i et retssalscenarie, opstår en type 1-fejl, ofte omtalt som en falsk positiv, når retten fejlagtigt dømmer en person som skyldig, når de i virkeligheden er uskyldige i den påståede forbrydelse. Denne alvorlige fejl kan have dybtgående konsekvenser og føre til uretmæssig straf af en uskyldig person, som ikke har begået den pågældende lovovertrædelse. Forebyggelse af type 1-fejl i retssager er altafgørende for at sikre, at retfærdigheden udføres præcist, og at uskyldige personer beskyttes mod uberettiget skade og straf.

Type 2 fejl

Type 2 fejl opstår, når modellen ikke formår at forudsige en positiv forekomst. Genkaldelse er direkte påvirket af falske negativer, da det er forholdet mellem sande positive og summen af ​​sande positive og falske negative.

I forbindelse med medicinsk test opstår en type 2-fejl, ofte kendt som en falsk negativ, når en diagnostisk test ikke kan påvise tilstedeværelsen af ​​en sygdom hos en patient, der virkelig har den. Konsekvenserne af en sådan fejl er betydelige, da det kan resultere i en forsinket diagnose og efterfølgende behandling.

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

Præcision lægger vægt på at minimere falske positiver, mens tilbagekaldelse fokuserer på at minimere falske negativer.

Implementering af forvirringsmatrix til binær klassificering ved hjælp af Python

Trin 1: Importer de nødvendige biblioteker

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

Trin 2: Opret NumPy-arrayet for faktiske og forudsagte etiketter

Python 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'])>

Trin 3: Beregn forvirringsmatricen

Python cm = confusion_matrix(actual,predicted)>

Trin 4: Plot forvirringsmatricen ved hjælp af det havfødte varmekort

Python 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()>

Produktion :

Trin 5: Klassifikationsrapport baseret på forvirringsmålinger

Python print(classification_report(actual, predicted))>

Produktion :

præcision genkald f1-score support Hund 0,83 0,83 0,83 6 Ikke Hund 0,75 0,75 0,75 4 nøjagtighed 0,80 10 makro gns. 0,79 0,79 0,79 10 vægtet gns. 0,80 0,80 08.

Forvirringsmatrix til klassificering i flere klasser

Lad os nu overveje, at der er tre klasser. En 3X3 forvirringsmatrix er vist nedenfor for billedet med tre klasser.

Her er TP= Sand positiv, FP= Falsk positiv, FN= Falsk negativ.

IndeksFaktiskeForudsagtByFPFN
1KatKat100
2HundHund100
3HestHund011
4KatKat100
5HundHund100
6KatKat100
7HundHund100
8HestHest100
9HestHest100
10KatHund011
  • Sande positive (TP): 8 (1+1+0+1+1+1+1+1+1+0)
  • Falske positive (FP): 2 (0+0+1+0+0+0+0+0+0+1)
  • Falske negativer (FN): 2 (0+0+1+0+0+0+0+0+0+1)

En 3X3 forvirringsmatrix er vist nedenfor for tre klasser.

Forudsagt

Kat

Hund

Hest


Faktiske

Kat

By

FP

FN

Hund

FP

By

FN

Hest

FN

FP

By

Klassemæssigt resumé:

  • For kat: [TP=3,FP=0,FN=1]
    • Indeks 1: Sand positiv (kat faktisk, kat forudsagt)
    • Indeks 4: Sand positiv (kat faktisk, kat forudsagt)
    • Indeks 6: Sand positiv (kat faktisk, kat forudsagt)
    • Indeks 10: Falsk negativ (Kat faktisk, Hund forudsagt)
  • For hund: [TP=3,FP=2,FN=0]
    • Indeks 2: Sand positiv (Hund faktisk, Hund forudsagt)
    • Indeks 5: Sand positiv (Hund faktisk, Hund forudsagt)
    • Indeks 7: Sand positiv (Hund faktisk, Hund forudsagt)
    • Indeks 10: Falsk Positiv (Kat faktisk, Hund forudsagt)
    • Indeks 3: Falsk positiv (faktisk hest, forudsagt hund)
  • For hest: [TP=2,FP=0,FN=1]
    • Indeks 8: Sand positiv (hest faktisk, hest forudsagt)
    • Indeks 9: Sand positiv (hest faktisk, hest forudsagt)
    • Indeks 3: Falsk negativ (faktisk hest, forudsagt hund)

Så vil forvirringsmatricen være:

Forudsagt

Kat

Hund

Hest


Faktiske

Kat

TP(3)

FP(1)

FN(0)

Hund

FN(0)

TP(3)

FN(1)

Hest

FN(1)

FP(1)

TP(2)

Implementering af Confusion Matrix til binær klassificering ved hjælp af Python

Trin 1: Importer de nødvendige biblioteker

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

Trin 2: Opret NumPy-arrayet for faktiske og forudsagte etiketter

Python 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'])>

Trin 3: Beregn forvirringsmatricen

Python cm = confusion_matrix(actual,predicted)>

Trin 4: Plot forvirringsmatricen ved hjælp af det havfødte varmekort

Python 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()>

Produktion:

Trin 5: Klassifikationsrapport baseret på forvirringsmålinger

Python print(classification_report(actual, predicted))>

Produktion :

præcision tilbagekaldelse f1-score støtte Kat 1,00 0,75 0,86 4 Hund 0,60 1,00 0,75 3 Hest 1,00 0,67 0,80 3 nøjagtighed 0,80 10 makro gns. 0,87 0,81 0,80 10 vægtet 0,80 10 vægtet.

Konklusion

For at opsummere er forvirringsmatricen et væsentligt instrument til at evaluere effektiviteten af ​​klassifikationsmodeller. Indsigt i en models nøjagtighed, præcision, genkaldelse og generelle effektivitet i klassificering af tilfælde gives af den grundige analyse af sande positive, sande negative, falske positive og falske negative forudsigelser, den tilbyder. Artiklen gav eksempler til at illustrere hver metriks beregning og diskuterede dens betydning. Det viste også, hvordan forvirringsmatricer kan implementeres i Python til binære og multi-klasse klassifikationsscenarier. Praktiserende læger kan træffe velinformerede beslutninger vedrørende modelydelse - især når de håndterer ubalancerede klassefordelinger - ved at forstå og anvende disse metrics.

Ofte stillede spørgsmål om Confusion Matrix

Q. Hvordan fortolker man en forvirringsmatrix?

En forvirringsmatrix opsummerer en klassifikationsmodels ydeevne med indgange, der repræsenterer sande positive, sande negative, falske positive og falske negative forekomster, hvilket giver indsigt i modellens nøjagtighed og fejl.

Q. Hvad er fordelene ved at bruge forvirringsmatrix?

Forvirringsmatricen giver en omfattende evaluering af en klassifikationsmodels ydeevne og giver indsigt i sande positive, sande negative, falske positive og falske negative, og hjælper med nuanceret analyse ud over grundlæggende nøjagtighed.

Q. Hvad er nogle eksempler på forvirringsmatrixapplikationer?

Forvirringsmatricer finder anvendelse på forskellige områder, herunder medicinsk diagnose (identifikation af sande/falske positive/negative for sygdomme), svigdetektion, sentimentanalyse og vurdering af billedgenkendelses nøjagtighed.

Q. Hvad er forvirringsmatrixdiagrammet?

Et forvirringsmatrixdiagram repræsenterer visuelt ydeevnen af ​​en klassifikationsmodel. Den viser sand positive, sand negative, falsk positive og falsk negative værdier i et struktureret matrixformat.

Q. Hvad er de tre værdier af forvirringsmatricen?

De tre værdier i forvirringsmatricen er sand positive (korrekt forudsagte positive tilfælde), sand negative (korrekt forudsagte negative tilfælde) og falsk positive (forkert forudsagte positive tilfælde).