Forvirringsmatrise i maskinlæring: One-stop-løsningen



Denne artikkelen fokuserer på Confusion Matrix, som er en av de viktigste aspektene ved enhver maskinlæringsalgoritme som brukes til å evaluere nøyaktigheten.

I , har vi vanligvis 2 forskjellige typer brukstilfeller, , og problem. Confusion Matrix hjelper til med å beregne nøyaktigheten til klassifiseringsmodellen, som indirekte hjelper oss med å beskrive ytelsen til klassifiseringsmodellen. Det er det viktigste trinnet når det gjelder evaluering av en modell. Jeg vil dekke følgende emner i denne artikkelen:

1. Hva er en forvirringsmatrise?





parse dobbelt til int java

2. Nøyaktighet og komponenter i forvirringsmatrise

3. Presisjon, tilbakekalling og F-mål



4. Opprette en forvirringsmatrise ved å bruke Python og Sklearn

Hva er en forvirringsmatrise?

En forvirringsmatrise er sammenligningssammendraget av de forutsagte resultatene og de faktiske resultatene i alle klassifiseringsproblemer. Sammenligningsoppsummeringen er ekstremt nødvendig for å bestemme ytelsen til modellen etter at den er trent med noen treningsdata. Accuracy-Confusion-MatrixFor et tilfelle med binær klassifisering er en forvirringsmatrise en 2 × 2 matrise som er vist nedenfor
Forutsagt klasse 1-verdi EG: 1 Forutsagt klasse 2-verdi EG: 0
Faktisk klasse 1-verdi

EG: 1

TP (ekte positiv) FN (falsk negativ)
Faktisk klasse 2-verdi



EG: 0

FP (falsk positiv) TN (True Negative)

Fra figuren ovenfor:
Vi har,

  • Faktisk klasse 1-verdi = 1 som tilsvarer positiv verdi i et binært utfall.
  • Faktisk klasse 2-verdi = 0 som tilsvarer en negativ verdi i binært utfall.

Venstreindeksen til forvirringsmatrisen indikerer i utgangspunktet de faktiske verdiene og den øverste kolonnen indikerer de forutsagte verdiene.

Det er forskjellige komponenter som eksisterer når vi lager en forvirringsmatrise. Komponentene er nevnt nedenfor

Positiv (P): Det forventede resultatet er positivt (eksempel: bildet er en katt)

Negativ (N): det forutsagte resultatet er negativt (eksempel: bilder er ikke en katt)

True Positive (TP): Her indikerer TP i utgangspunktet det forutsagte og de faktiske verdiene er 1 (True)

True Negative (TN): Her indikerer TN det forutsagte og den faktiske verdien er 0 (usann)

False Negative (FN): Her angir FN at den forutsagte verdien er 0 (negativ) og den faktiske verdien er 1. Her stemmer ikke begge verdiene overens. Derfor er det falskt negativt.

Falske positive (FP): Her indikerer FP at den forutsagte verdien er 1 (positiv) og den faktiske verdien er 0. Også her er begge verdiene uoverensstemmende. Derfor er det falskt positivt.

Nøyaktighet og komponenter i forvirringsmatrise

Etter at forvirringsmatrisen er opprettet og vi bestemmer alle komponentverdiene, blir det ganske enkelt for oss å beregne nøyaktigheten. Så, la oss ta en titt på komponentene for å forstå dette bedre.
  • Klassifisering Nøyaktighet

Fra formelen ovenfor er summen av TP (True Positive) og TN (True Negative) de riktige forventede resultatene. Derfor, for å beregne nøyaktigheten i prosent, deler vi med alle de andre komponentene. Imidlertid er det noen problemer i nøyaktigheten, og vi kan ikke helt stole på den.

La oss vurdere at datasettet vårt er fullstendig ubalansert. I dette scenariet kan 98% nøyaktighet være god eller dårlig basert på problemstillingen. Derfor har vi noen flere nøkkelord som vil hjelpe oss å være sikre på nøyaktigheten vi beregner. Vilkårene er som gitt nedenfor:

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

Ekte positiv hastighet, som også er kjent som følsomhet, måler prosentandelen av ekte positiv i forhold til de totale faktiske positive som er indikert av (TP + FN)

Forutsagt klasse 1-verdi EG: 1 Forutsagt klasse 2-verdi EG: 0 Total
Faktisk klasse 1-verdi

EG: 1

TP (ekte positiv) FN (falsk negativ) Totale faktiske positive
Faktisk klasse 2-verdi

EG: 0

FP (falsk positiv)TN (True Negative)Totale faktiske negative
TPR = True Positive / (True Positive + False Negative
  • TNR (True Negative Rate) eller spesifisitet:

True Negative Rate or Specificity måler andelen faktiske negativer i forhold til de totale negative

Forutsagt klasse 1-verdi EG: 1 Forutsagt klasse 2-verdi EG: 0 Total
Faktisk klasse 1-verdi

EG: 1

TP (ekte positiv)FN (falsk negativ)Totale faktiske positive
Faktisk klasse 2-verdi

EG: 0

FP (falsk positiv) TN (True Negative) Totale faktiske negative

TNR = True Negative / (True Negative + False Positive)

  • Falsk positiv rate (FPR):

False Positive Rate er prosentandelen av Forutsagt Falsk Positiv (FP) til det totale antallet forutsagte positive resultater (TP + FP).

Forutsagt klasse 1-verdi EG: 1 Forutsagt klasse 2-verdi EG: 0
Faktisk klasse 1-verdi EG: 1 TP (ekte positiv) FN (falsk negativ)
Faktisk klasse 2-verdi EG: 0 FP (falsk positiv) TN (True Negative)
Summen av totalt forventet positivt Summen av totalt forventet negativt
FPR = False Positive / (True Positive + False Positive)
  • False Negative Rate (FNR):

False Negative Rate er prosentandelen av Forutsagt Falsk Negativ (FP) til det totale antallet forutsagte negative resultater (TN + FN).

hva er et token i java
Forutsagt klasse 1-verdi EG: 1 Forutsagt klasse 2-verdi EG: 0
Faktisk klasse 1-verdi EG: 1TP (ekte positiv) FN (falsk negativ)
Faktisk klasse 2-verdi EG: 0FP (falsk positiv) TN (True Negative)
Summen av totalt forventet positivt Summen av totalt forventet negativt
FNR = False Negative / (False Negative + True Negative)

Presisjon, tilbakekalling og F-mål

  • Minnes:

En tilbakekalling er lik den sanne positive frekvensen, og det er forholdet mellom det totale antall korrekt forutsagte positive verdier (TP) og alle de positive verdiene.

  • Presisjon:

Presisjonen indikerer i utgangspunktet alle poengene modellen forutslo å være positive, og hvor stor prosentandel av dem som faktisk er positive.

Presisjon og tilbakekalling er beregningsresultater som fokuserer på den positive klassen som vist fra formlene ovenfor.

  • F-mål

Så F-Measure er en teknikk som kombinerer både Precision og Recall-teknikken, og den bruker harmonisk middel i stedet for det vanlige aritmetiske gjennomsnittet, på grunn av hvilket de ekstreme verdiene blir straffet. F-tiltaket kalles også som F1- poengsum og er gitt av formelen nedenfor.

La oss se på et eksempel og se hvordan vi kan beregne nøyaktighet, presisjon, tilbakekalling og F1-poengsum.

N = 165 Forutsagt JA Forutsagt NEI
Faktisk JA TP = 150 FN = 10
Nåværende NO FP = 20 TN = 100
    • Nøyaktighet = (TP + TN) / (TP + TN + FP + FN) = (150 + 100) / (150 + 100 + 20 + 10) = 0,89
    • Tilbakekall = TP / (TP + FN) = 150 / (150 + 10) = 0,93
    • Presisjon: 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

Opprette en forvirringsmatrise ved å bruke Python og Sklearn

Nå vil vi se et eksempel på hvordan vi kan lage en forvirringsmatrise ved hjelp av python sammen med sklearn-biblioteket.

en. I utgangspunktet vil vi lage en liste over de faktiske dataene og forutsagt for å kontrollere nøyaktigheten som vist nedenfor

# Python-skript for oppretting av forvirringsmatrise. faktisk_data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] predicted_data = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1]

2. Vi må importere forvirringsmatrisen fra sklearn-biblioteket som vist nedenfor:

fra sklearn.metrics importerer confusion_matrix

3. Deretter lager vi forvirringsmatrisen som vist nedenfor:

final_results = confusion_matrix (actual_data, predicted_data)

Fire. Nå kan vi fortsette og beregne nøyaktigheten ved å importere biblioteket som vist nedenfor:

fra sklearn.metrics import accuracy_score accuracy = accuracy_score (actual_data, predicted_data)

5. Til slutt beregner vi F1-poengsummen eller F-målet som vist nedenfor:

fra sklearn.metrics import klassifiseringsrapportrapport = klassifiseringsrapport (faktisk_data, forutsagt_data)

Nedenfor er den komplette koden:

faktisk_data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] predicted_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 klassifikasjon_rapportrapport = klassifikasjonsrapport ( faktisk_data, forutsagt_data) utskrift (nøyaktighet) utskrift (rapport)

matrix

Så med dette kommer vi til en slutt på denne artikkelen. Jeg håper all din forvirring om forvirringsmatrisen nå er løst.

Edureka’s hjelper deg med å få ekspertise innen ulike maskinlæringsalgoritmer som regresjon, klynging, beslutningstrær, tilfeldig skog, Naïve Bayes og Q-Learning. Denne maskinlæringen ved hjelp av Python-trening utsetter deg for begreper statistikk, tidsserier og forskjellige klasser av maskinlæringsalgoritmer, som algoritmer for overvåket, uten tilsyn og forsterkning. Gjennom sertifiseringskurset for datavitenskap vil du løse virkelige casestudier på media, helsevesen, sosiale medier, luftfart, HR.