I maskinlæring , klassifisering er prosessen med å kategorisere et gitt sett med data i forskjellige kategorier. I maskinlæring, for å måle ytelsen til klassifiseringsmodellen, bruker vi forvirringsmatrise . Gjennom denne opplæringen, forstå betydningen av forvirringsmatrisen.
Hva er en forvirringsmatrise?
EN forvirringsmatrise er en matrise som oppsummerer ytelsen til en maskinlæringsmodell på et sett med testdata. Det er et middel til å vise antall nøyaktige og unøyaktige forekomster basert på modellens spådommer. Det brukes ofte til å måle ytelsen til klassifiseringsmodeller, som tar sikte på å forutsi en kategorisk etikett for hver inngangsforekomst.
Matrisen viser antall forekomster produsert av modellen på testdataene.
- Ekte positive (TP): oppstår når modellen nøyaktig forutsier et positivt datapunkt.
- Ekte negative (TN) : oppstår når modellen nøyaktig forutsier et negativt datapunkt.
- Falske positiver (FP) : oppstår når modellen forutsier et positivt datapunkt feil.
- Falsk negativer (FN) : oppstår når modellen feilpredikerer et negativt datapunkt.
Hvorfor trenger vi en forvirringsmatrise?
Når du vurderer ytelsen til en klassifiseringsmodell, er en forvirringsmatrise avgjørende. Den tilbyr en grundig analyse av sanne positive, sanne negative, falske positive og falske negative spådommer, noe som letter en dypere forståelse av modellens tilbakekalling, nøyaktighet, presisjon, og generell effektivitet i klasseskille. Når det er en ujevn klassefordeling i et datasett, er denne matrisen spesielt nyttig for å evaluere en modells ytelse utover grunnleggende nøyaktighetsmålinger.
La oss forstå forvirringsmatrisen med eksemplene:
Forvirringsmatrise For binær klassifisering
En 2X2 forvirringsmatrise er vist nedenfor for bildegjenkjenningen med et hundebilde eller ikke hundebilde.
| Faktiske | ||
|---|---|---|---|
Hund | Ikke hund | ||
Spådd | Hund | Ekte positiv | Falsk positiv |
Ikke hund | Falsk negativ | Ekte negativ |
- Sann positiv (TP): Det er de totale tellingene som har både predikerte og faktiske verdier er Hund.
- True Negative (TN): Det er det totale antallet som har både anslåtte og faktiske verdier som ikke er hund.
- Falsk positiv (FP): Det er det totale antallet som har prediksjon er Dog mens det faktisk ikke er hund.
- Falsk negativ (FN): Det er det totale antallet som har prediksjon er ikke hund mens det faktisk er hund.
Eksempel på binære klassifiseringsproblemer
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 |
Spådd | 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 hundetall = 6
- Faktisk ikke hundetall = 4
- Sant positive tall = 5
- Antall falske positive = 1
- Sant negative antall = 3
- Antall falske negative = 1
rekke strenger i c | Spådd | ||
|---|---|---|---|
Hund | Ikke hund | ||
Faktiske | Hund | Ekte positiv | Falsk negativ |
Ikke hund | Falsk positiv | Ekte negativ |
Beregninger basert på forvirringsmatrisedata
1. Nøyaktighet
Nøyaktighet brukes til å måle ytelsen til modellen. Det er forholdet mellom totalt korrekte forekomster og totalt antall forekomster.
For tilfellet ovenfor:
Nøyaktighet = (5+3)/(5+3+1+1) = 8/10 = 0,8
2. Presisjon
Presisjon er et mål på hvor nøyaktige en modells positive spådommer er. Det er definert som forholdet mellom sanne positive spådommer og det totale antallet positive spådommer laget av modellen.
For tilfellet ovenfor:
Presisjon = 5/(5+1) =5/6 = 0,8333
3. Tilbakekalling
Minnes måler effektiviteten til en klassifiseringsmodell for å identifisere alle relevante forekomster fra et datasett. Det er forholdet mellom antall sanne positive (TP) forekomster og summen av sanne positive og falske negative (FN) forekomster.
For tilfellet ovenfor:
Recall = 5/(5+1) =5/6 = 0,8333
Merk: Vi bruker presisjon når vi ønsker å minimere falske positiver, avgjørende i scenarier som e-postoppdagelse av søppelpost hvor feilklassifisering av en melding som ikke er søppelpost er kostbar. Og vi bruker tilbakekalling når det er viktig å minimere falske negativer, som i medisinske diagnoser, der identifisering av alle faktiske positive tilfeller er avgjørende, selv om det resulterer i noen falske positive.
4. F1-score
F1-score brukes til å evaluere den generelle ytelsen til en klassifiseringsmodell. Det er det harmoniske middelet for presisjon og gjenkalling,
For tilfellet ovenfor:
F1-score: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333
Vi balanserer presisjon og tilbakekalling med F1-poengsum når en avveining mellom å minimere falske positive og falske negative er nødvendig, for eksempel i systemer for informasjonsinnhenting.
5. Spesifisitet:
Spesifisitet er en annen viktig metrikk i evalueringen av klassifikasjonsmodeller, spesielt i binær klassifisering. Den måler en modells evne til å identifisere negative forekomster korrekt. Spesifisitet er også kjent som True Negative Rate.
Spesifisitet=3/(1+3)=3/4=0,75
6. Type 1 og Type 2 feil
Type 1 feil
Type 1-feil oppstår når modellen forutsier en positiv forekomst, men den er faktisk negativ. Presisjon påvirkes av falske positive, da det er forholdet mellom sanne positive og summen av sanne positive og falske positive.
For eksempel, i et rettssalsscenario, oppstår en type 1-feil, ofte referert til som en falsk positiv, når retten feilaktig dømmer en person som skyldig når de i sannhet er uskyldige i den påståtte forbrytelsen. Denne alvorlige feilen kan få dype konsekvenser, og føre til urettmessig straff av en uskyldig person som ikke har begått den aktuelle lovbruddet. Forebygging av type 1-feil i rettslige prosesser er avgjørende for å sikre at rettferdighet utføres nøyaktig og uskyldige individer beskyttes mot uberettiget skade og straff.
Type 2 feil
Type 2-feil oppstår når modellen ikke klarer å forutsi en positiv forekomst. Tilbakekalling påvirkes direkte av falske negativer, da det er forholdet mellom sanne positive og summen av sanne positive og falske negative.
I sammenheng med medisinsk testing oppstår en type 2-feil, ofte kjent som en falsk negativ, når en diagnostisk test ikke klarer å oppdage tilstedeværelsen av en sykdom hos en pasient som virkelig har den. Konsekvensene av en slik feil er betydelige, da det kan føre til forsinket diagnose og påfølgende behandling.
Presisjon legger vekt på å minimere falske positive, mens tilbakekalling fokuserer på å minimere falske negative.
Implementering av forvirringsmatrise for binær klassifisering ved bruk av Python
Trinn 1: Importer de nødvendige bibliotekene
Python import numpy as np from sklearn.metrics import confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt> Trinn 2: Lag NumPy-matrisen for faktiske og forutsagte 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'])> Trinn 3: Beregn forvirringsmatrisen
Python cm = confusion_matrix(actual,predicted)> Trinn 4: Plott forvirringsmatrisen ved hjelp av det sjøborne varmekartet
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()> Produksjon :
Trinn 5: Klassifikasjonsrapport basert på forvirringsmålinger
Python print(classification_report(actual, predicted))> Produksjon :
presisjon gjenkalling f1-score støtte Hund 0,83 0,83 0,83 6 Ikke hund 0,75 0,75 0,75 4 nøyaktighet 0,80 10 makro snitt 0,79 0,79 0,79 10 vektet snitt 0,80 0,80 08.
Forvirringsmatrise for klassifisering i flere klasser
La oss nå vurdere at det er tre klasser. En 3X3 forvirringsmatrise er vist nedenfor for bildet som har tre klasser.
Her er TP= Sant positiv, FP= Falsk positiv, FN= Falsk negativ.
| Indeks | Faktiske | Spådd | By | FP | FN |
|---|---|---|---|---|---|
| 1 | Katt | Katt | 1 | 0 | 0 |
| 2 | Hund | Hund | 1 | 0 | 0 |
| 3 | Hest | Hund | 0 | 1 | 1 |
| 4 | Katt | Katt | 1 | 0 | 0 |
| 5 | Hund | Hund | 1 | 0 | 0 |
| 6 | Katt | Katt | 1 | 0 | 0 |
| 7 | Hund | Hund | 1 | 0 | 0 |
| 8 | Hest | Hest | 1 | 0 | 0 |
| 9 | Hest | Hest | 1 | 0 | 0 |
| 10 | Katt | Hund | 0 | 1 | 1 |
- Sanne 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 forvirringsmatrise er vist nedenfor for tre klasser.
| Spådd | |||
|---|---|---|---|---|
Katt | Hund | Hest | ||
| Katt | By | FP | FN |
Hund | FP | By | FN | |
Hest | FN | FP | By |
Klassemessig sammendrag:
- For katt: [TP=3,FP=0,FN=1]
- Indeks 1: Sann positiv (Katt faktisk, Katt spådd)
- Indeks 4: Sann positiv (katten faktisk, katten spådd)
- Indeks 6: Sant positiv (katten faktisk, katten spådd)
- Indeks 10: Falsk negativ (katt faktisk, hund spådd)
- For hund: [TP=3,FP=2,FN=0]
- Indeks 2: Sant positiv (faktisk hund, spådd hund)
- Indeks 5: Sant positiv (faktisk hund, spådd hund)
- Indeks 7: Sant positiv (faktisk hund, spådd hund)
- Indeks 10: Falsk positiv (faktisk katt, spådd hund)
- Indeks 3: Falsk positiv (faktisk hest, spådd hund)
- For hest: [TP=2,FP=0,FN=1]
- Indeks 8: Sann positiv (hest faktisk, hest spådd)
- Indeks 9: Sann positiv (hest faktisk, hest spådd)
- Indeks 3: Falsk negativ (faktisk hest, spådd hund)
Da vil forvirringsmatrisen være:
| Spådd | |||
|---|---|---|---|---|
Katt | Hund | Hest | ||
| Katt | TP(3) | FP(1) | FN(0) |
Hund | FN(0) | TP(3) | FN(1) | |
Hest | FN(1) | FP(1) | TP(2) |
Implementering av forvirringsmatrise for binær klassifisering ved bruk av Python
Trinn 1: Importer de nødvendige bibliotekene
Python import numpy as np from sklearn.metrics import confusion_matrix, classification_report import seaborn as sns import matplotlib.pyplot as plt> Trinn 2: Lag NumPy-matrisen for faktiske og forutsagte 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'])> Trinn 3: Beregn forvirringsmatrisen
Python cm = confusion_matrix(actual,predicted)> Trinn 4: Plott forvirringsmatrisen ved hjelp av det sjøborne varmekartet
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()> Produksjon:
Trinn 5: Klassifikasjonsrapport basert på forvirringsmålinger
Python print(classification_report(actual, predicted))> Produksjon :
presisjon tilbakekalling f1-score støtte Katt 1,00 0,75 0,86 4 Hund 0,60 1,00 0,75 3 Hest 1,00 0,67 0,80 3 nøyaktighet 0,80 10 makro snitt 0,87 0,81 0,80 10 snitt 08 080 10 vektt.
Konklusjon
For å oppsummere er forvirringsmatrisen et viktig instrument for å evaluere effektiviteten til klassifikasjonsmodeller. Innsikt i en modells nøyaktighet, presisjon, tilbakekalling og generelle effektivitet i klassifisering av tilfeller er gitt av den grundige analysen av sanne positive, sanne negative, falske positive og falske negative spådommer den tilbyr. Artikkelen ga eksempler for å illustrere hver beregnings beregning og diskuterte viktigheten. Den demonstrerte også hvordan forvirringsmatriser kan implementeres i Python for binære og multi-klasse klassifiseringsscenarier. Utøvere kan ta velinformerte beslutninger angående modellytelse - spesielt når de håndterer ubalanserte klassefordelinger - ved å forstå og bruke disse beregningene.
Vanlige spørsmål om Confusion Matrix
Sp. Hvordan tolke en forvirringsmatrise?
En forvirringsmatrise oppsummerer en klassifiseringsmodells ytelse, med oppføringer som representerer sanne positive, sanne negative, falske positive og falske negative forekomster, og gir innsikt i modellens nøyaktighet og feil.
Sp. Hva er fordelene med å bruke forvirringsmatrise?
Forvirringsmatrisen gir en omfattende evaluering av en klassifiseringsmodells ytelse, og gir innsikt i sanne positive, sanne negative, falske positive og falske negative, og hjelper til med nyansert analyse utover grunnleggende nøyaktighet.
Q. Hva er noen eksempler på forvirringsmatriseapplikasjoner?
Forvirringsmatriser finner anvendelser på forskjellige felt, inkludert medisinsk diagnose (identifisering av sanne/falske positive/negative for sykdommer), svindeldeteksjon, sentimentanalyse og vurdering av bildegjenkjenningsnøyaktighet.
Sp. Hva er forvirringsmatrisediagrammet?
Et forvirringsmatrisediagram representerer visuelt ytelsen til en klassifiseringsmodell. Den viser sanne positive, sanne negative, falske positive og falske negative verdier i et strukturert matriseformat.
Sp. Hva er de tre verdiene til forvirringsmatrisen?
De tre verdiene til forvirringsmatrisen er sann positiv (korrekt predikert positive forekomster), sann negativ (korrekt forutsagt negative forekomster) og falsk positiv (feil forutsagt positive forekomster).