Confusion Matrix in Machine Learning: Your One Stop Solution



Den här artikeln fokuserar på Confusion Matrix, som är en av de viktigaste aspekterna av någon maskininlärningsalgoritm som används för att utvärdera dess noggrannhet.

I , vi har vanligtvis två olika typer av användningsfall, och problem. Confusion Matrix hjälper till att beräkna klassificeringsmodellens noggrannhet, vilket indirekt hjälper oss att beskriva klassificeringsmodellens prestanda. Det är det viktigaste steget när det gäller att utvärdera en modell. Jag kommer att behandla följande ämnen i den här artikeln:

1. Vad är en förvirringsmatris?





2. Noggrannhet och komponenter i förvirringsmatris

3. Precision, Recall och F-Measure



4. Skapa en förvirringsmatris med Python och Sklearn

Vad är en förvirringsmatris?

En förvirringsmatris är jämförelsessammanfattningen av de förutsagda resultaten och de faktiska resultaten i alla klassificeringsproblem. Jämförelsessammanfattningen är extremt nödvändig för att bestämma modellens prestanda efter att den har tränats med några träningsdata. Accuracy-Confusion-MatrixFör ett fall med binär klassificering är en förvirringsmatris en 2 × 2-matris som visas nedan
Förutsett klass 1-värde EG: 1 Förutsett klass 2-värde EG: 0
Verkligt klass 1-värde

EG: 1

TP (True Positive) FN (falskt negativt)
Verkligt klass 2-värde



EG: 0

FP (falskt positivt) TN (True Negative)

Från figuren ovan:
Vi har,

  • Verkligt klass 1-värde = 1 vilket liknar positivt värde i ett binärt utfall.
  • Verkligt klass 2-värde = 0 vilket liknar ett negativt värde i binärt utfall.

Det vänstra indexet för förvirringsmatrisen indikerar i princip de faktiska värdena och den övre kolumnen indikerar de förutspådda värdena.

Det finns olika komponenter när vi skapar en förvirringsmatris. Komponenterna nämns nedan

Positiv (P): Det förutsagda resultatet är positivt (Exempel: Bilden är en katt)

Negativ (N): det förutspådda resultatet är negativt (exempel: bilder är inte en katt)

True Positive (TP): Här anger TP i princip det förutsagda och de faktiska värdena är 1 (True)

True Negative (TN): Här indikerar TN det förutsagda och det verkliga värdet är 0 (Falskt)

Falskt negativt (FN): Här anger FN att det förutsagda värdet är 0 (negativt) och det faktiska värdet är 1. Här matchar båda värdena inte. Därför är det falskt negativt.

Falskt positivt (FP): Här indikerar FP att det förutspådda värdet är 1 (positivt) och det verkliga värdet är 0. Även här matchar båda värdena. Därför är det falskt positivt.

Noggrannhet och komponenter i förvirringsmatris

När förvirringsmatrisen har skapats och vi bestämmer alla komponentvärden blir det ganska enkelt för oss att beräkna noggrannheten. Så låt oss ta en titt på komponenterna för att förstå detta bättre.
  • Klassificeringsnoggrannhet

Från ovanstående formel är summan av TP (True Positive) och TN (True Negative) de korrekta förutsagda resultaten. För att beräkna noggrannheten i procent delar vi därför med alla andra komponenter. Det finns dock några problem i noggrannheten och vi kan inte helt bero på det.

Låt oss överväga att vår dataset är helt obalanserad. I det här scenariot kan 98% noggrannhet vara bra eller dålig baserat på problemförklaringen. Därför har vi några fler nyckeltermer som hjälper oss att vara säkra på den noggrannhet vi beräknar. Villkoren är som anges nedan:

  • TPR (True Positive Rate) eller känslighet:

Sann Positiv hastighet som också kallas känslighet mäter procentandelen Sann Positiv med avseende på de totala faktiska positiva som indikeras av (TP + FN)

Förutsett klass 1-värde EG: 1 Förutsett klass 2-värde EG: 0 Total
Verkligt klass 1-värde

EG: 1

TP (True Positive) FN (falskt negativt) Totala faktiska positiva
Verkligt klass 2-värde

hur man använder python anaconda

EG: 0

FP (falskt positivt)TN (True Negative)Totala faktiska negativ
TPR = True Positive / (True Positive + False Negative
  • TNR (True Negative Rate) eller specificitet:

True Negative Rate eller Specificity mäter andelen faktiska negativ med avseende på de totala negativa

Förutsett klass 1-värde EG: 1 Förutsett klass 2-värde EG: 0 Total
Verkligt klass 1-värde

EG: 1

TP (True Positive)FN (falskt negativt)Totala faktiska positiva
Verkligt klass 2-värde

EG: 0

FP (falskt positivt) TN (True Negative) Totala faktiska negativ

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

  • Falsk positiv frekvens (FPR):

Falskt positivt värde är procentandelen av förutsagt falskt positivt (FP) till det totala antalet förutspådda positiva resultat (TP + FP).

Förutsett klass 1-värde EG: 1 Förutsett klass 2-värde EG: 0
Verkligt klass 1-värde EG: 1 TP (True Positive) FN (falskt negativt)
Verkligt klass 2-värde EG: 0 FP (falskt positivt) TN (True Negative)
Summan av totalt förutsagt positivt Summan av totalt beräknat negativt
FPR = Falskt positivt / (True Positive + False Positive)
  • False Negative Rate (FNR):

Falsk negativ frekvens är procentandelen av förutsagt falsk negativ (FP) till det totala antalet förutspådda negativa resultat (TN + FN).

Förutsett klass 1-värde EG: 1 Förutsett klass 2-värde EG: 0
Verkligt klass 1-värde EG: 1TP (True Positive) FN (falskt negativt)
Verkligt klass 2-värde EG: 0FP (falskt positivt) TN (True Negative)
Summan av totalt förutsagt positivt Summan av totalt beräknat negativt
FNR = False Negative / (False Negative + True Negative)

Precision, Recall och F-Measure

  • Återkallelse:

En återkallning liknar den sanna positiva frekvensen och det är förhållandet mellan det totala antalet korrekt förutspådda positiva värden (TP) och alla positiva värden.

  • Precision:

Precisionen anger i princip alla punkter som modellen förutspådde vara positiva och hur stor andel av dem som faktiskt är positiva.

Precision och Recall är måttresultat som fokuserar på den positiva klassen som visas från ovanstående formler.

  • F-åtgärd

Så F-Measure är en teknik som kombinerar både Precision och Recall-tekniken och den använder Harmonic Mean istället för det vanliga aritmetiska medelvärdet, på grund av vilket de extrema värdena straffas. F-måttet kallas också som F1-poäng och ges av formeln nedan.

Låt oss överväga ett exempel och se hur vi kan beräkna noggrannhet, precision, återkallelse och F1-poäng.

N = 165 Förutsagt JA Förutsagt NEJ
Faktiskt JA TP = 150 FN = 10
Nuvarande NO FP = 20 TN = 100
    • Noggrannhet = (TP + TN) / (TP + TN + FP + FN) = (150 + 100) / (150 + 100 + 20 + 10) = 0,89
    • Återkall = TP / (TP + FN) = 150 / (150 + 10) = 0,93
    • Precision: TP / (TP + FP) = 150 / (150 + 20) = 0,88

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

Skapa en förvirringsmatris med Python och Sklearn

Nu ser vi ett exempel på hur vi kan skapa en förvirringsmatris med hjälp av python tillsammans med sklearn-biblioteket.

ett. Inledningsvis kommer vi att skapa en lista över de faktiska uppgifterna och förutsagt att kontrollera noggrannheten enligt nedan

# Python-skript för skapande av förvirringsmatris. faktiska data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] förutsagda data = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1]

2. Vi måste importera förvirringsmatrisen från sklearn-biblioteket enligt nedan:

från sklearn.metrics importerar confusion_matrix

3. Därefter skapar vi förvirringsmatrisen enligt nedan:

final_results = confusion_matrix (actual_data, predicted_data)

Fyra. Nu kan vi fortsätta och beräkna noggrannheten genom att importera biblioteket enligt nedan:

från sklearn.metrics importera precision_score precision = precision_score (faktiska_data, förutsagda_data)

5. Slutligen beräknar vi F1-poängen eller F-måttet som visas nedan:

från sklearn.metrics import klassificeringsrapport rapport = klassificeringsrapport (faktiska_data, förutsagda_data)

Nedan är den fullständiga koden:

faktiska data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] förutsagda data = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1] från sklearn.metrics import confusion_matrix final_results = confusion_matrix (actual_data, predicted_data) print (final_results) från sklearn.metrics import precision_score precision = precision_score (actual_data, predicted_data) från sklearn.metrics import klassificering_rapport rapport = klassificeringsrapport ( faktisk_data, förutsagt_data) utskrift (noggrannhet) utskrift (rapport)

matrix

Så med detta kommer vi till slutet av den här artikeln. Jag hoppas att all din förvirring om Confusion Matrix nu är löst.

Edureka's hjälper dig att få kompetens inom olika maskininlärningsalgoritmer som regression, kluster, beslutsträd, slumpmässig skog, Naïve Bayes och Q-Learning. Denna maskininlärning med hjälp av Python-utbildning utsätter dig för begrepp för statistik, tidsserier och olika klasser av maskininlärningsalgoritmer som övervakade, utan tillsyn och förstärkningsalgoritmer. Under hela datavetenskapscertifieringskursen kommer du att lösa verkliga fallstudier om media, hälsovård, sociala medier, luftfart, HR.