logo

Förvirringsmatris i maskininlärning

I maskininlärning , klassificering är processen att kategorisera en given uppsättning data i olika kategorier. I maskininlärning, för att mäta prestandan för klassificeringsmodellen, använder vi förvirringsmatris . Genom denna handledning förstår du betydelsen av förvirringsmatrisen.

Vad är en förvirringsmatris?

A förvirringsmatris är en matris som sammanfattar prestandan för en maskininlärningsmodell på en uppsättning testdata. Det är ett sätt att visa antalet korrekta och felaktiga instanser baserat på modellens förutsägelser. Det används ofta för att mäta prestanda för klassificeringsmodeller, som syftar till att förutsäga en kategorisk etikett för varje ingångsinstans.

Matrisen visar antalet instanser som produceras av modellen på testdata.



  • Sant positiva (TP): uppstår när modellen exakt förutsäger en positiv datapunkt.
  • Sanna negativa (TN) : inträffar när modellen exakt förutsäger en negativ datapunkt.
  • Falska positiva (FP) : inträffar när modellen förutsäger en positiv datapunkt felaktigt.
  • Falsk negativ (FN) : inträffar när modellen felförutsäger en negativ datapunkt.

Varför behöver vi en förvirringsmatris?

När man bedömer en klassificeringsmodells prestanda är en förvirringsmatris väsentlig. Den erbjuder en grundlig analys av sanna positiva, sanna negativa, falska positiva och falska negativa förutsägelser, vilket underlättar en mer djupgående förståelse av en modells återkalla, noggrannhet, precision, och övergripande effektivitet i klassskillnad. När det finns en ojämn klassfördelning i en datauppsättning är denna matris särskilt användbar för att utvärdera en modells prestanda utöver grundläggande noggrannhetsmått.

Låt oss förstå förvirringsmatrisen med exemplen:

Förvirringsmatris För binär klassificering

En 2X2 förvirringsmatris visas nedan för bildigenkänningen med en hundbild eller inte hundbild.

Faktisk

Hund

Inte hund

Förutspått

Hund

Riktigt positiv
(TP)

Falskt positivt
(FP)

Inte hund

Falskt negativ
(FN)

Riktigt negativ
(TN)

  • Sant positiv (TP): Det är det totala antalet som har både förutsagda och faktiska värden är Hund.
  • Sant negativt (TN): Det är det totala antalet som har både förutsagda och faktiska värden är Not Dog.
  • Falskt positivt (FP): Det är det totala antalet som förutsäger är hund medan det faktiskt inte är hund.
  • Falskt negativt (FN): Det är det totala antalet som har förutsägelse är inte hund medan det faktiskt är hund.

Exempel på problem med binära klassificeringar

Index

1

2

3

4

5

6

7

8

9

10

Faktisk

java konstant

Hund

Hund

Hund

Inte hund

Hund

Inte hund

Hund

Hund

Inte hund

Inte hund

Förutspått

Hund

Inte hund

Hund

Inte hund

Hund

Hund

Hund

Hund

Inte hund

Inte hund

Resultat

Stad

FN

Stad

TN

Stad

FP

Stad

Stad

TN

TN

  • Faktiskt antal hundar = 6
  • Faktiskt antal inte hundar = 4
  • Sann positiv räkning = 5
  • Falskt positiva antal = 1
  • Sant negativt antal = 3
  • Falskt negativa antal = 1

Förutspått

Hund

Inte hund


Faktisk

Hund

Riktigt positiv
(TP =5)

Falskt negativ
(FN =1)

Inte hund

Falskt positivt
(FP=1)

Riktigt negativ
(TN=3)

Mätvärden baserade på förvirringsmatrisdata

1. Noggrannhet

Noggrannhet används för att mäta modellens prestanda. Det är förhållandet mellan Totalt korrekta instanser och totala instanser.

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

För ovanstående fall:

Noggrannhet = (5+3)/(5+3+1+1) = 8/10 = 0,8

2. Precision

Precision är ett mått på hur korrekta en modells positiva förutsägelser är. Det definieras som förhållandet mellan sanna positiva förutsägelser och det totala antalet positiva förutsägelser gjorda av modellen.

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

För ovanstående fall:

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

3. Återkalla

Återkallelse mäter effektiviteten hos en klassificeringsmodell för att identifiera alla relevanta instanser från en datauppsättning. Det är förhållandet mellan antalet sanna positiva (TP)-instanser och summan av sanna positiva och falskt negativa (FN)-instanser.

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

För ovanstående fall:

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

Notera: Vi använder precision när vi vill minimera falska positiva resultat, vilket är avgörande i scenarier som e-postdetektering av skräppost där det är kostsamt att felaktigt klassificera ett meddelande som inte är skräppost. Och vi använder återkallelse när det är viktigt att minimera falska negativa resultat, som vid medicinska diagnoser, där det är viktigt att identifiera alla faktiska positiva fall, även om det resulterar i några falska positiva.

4. F1-poäng

F1-poäng används för att utvärdera det övergripande resultatet av en klassificeringsmodell. Det är det harmoniska medelvärdet för precision och återkallelse,

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

För ovanstående fall:

F1-poäng: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333

Vi balanserar precision och återkallelse med F1-poängen när en avvägning mellan att minimera falska positiva och falska negativa är nödvändig, till exempel i system för informationssökning.

5. Specificitet:

Specificitet är ett annat viktigt mått i utvärderingen av klassificeringsmodeller, särskilt i binär klassificering. Den mäter förmågan hos en modell att korrekt identifiera negativa instanser. Specificitet är också känd som den sanna negativa frekvensen.

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

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

6. Typ 1 och Typ 2 fel

Typ 1 fel

Typ 1-fel uppstår när modellen förutsäger en positiv instans, men den är faktiskt negativ. Precision påverkas av falska positiva, eftersom det är förhållandet mellan sanna positiva och summan av sanna positiva och falska positiva.

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

Till exempel, i ett rättssalsscenario, uppstår ett typ 1-fel, ofta kallat falskt positivt, när domstolen av misstag dömer en individ som skyldig när de i själva verket är oskyldiga till det påstådda brottet. Detta allvarliga misstag kan få djupgående konsekvenser, vilket leder till felaktig bestraffning av en oskyldig person som inte har begått brottet i fråga. Att förhindra typ 1-fel i rättsliga förfaranden är avgörande för att säkerställa att rättvisa skipas korrekt och oskyldiga individer skyddas från obefogad skada och straff.

Typ 2 fel

Typ 2-fel uppstår när modellen inte lyckas förutsäga en positiv instans. Återkallelse påverkas direkt av falska negativ, eftersom det är förhållandet mellan sanna positiva och summan av sanna positiva och falska negativa.

I samband med medicinska tester uppstår ett typ 2-fel, ofta känt som ett falskt negativt, när ett diagnostiskt test misslyckas med att upptäcka förekomsten av en sjukdom hos en patient som verkligen har den. Konsekvenserna av ett sådant fel är betydande, eftersom det kan resultera i en försenad diagnos och efterföljande behandling.

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

Precision betonar att minimera falska positiva, medan återkallelse fokuserar på att minimera falska negativa.

Implementering av förvirringsmatris för binär klassificering med Python

Steg 1: Importera nödvändiga bibliotek

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

Steg 2: Skapa NumPy-arrayen för faktiska och förutspådda etiketter

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

Steg 3: Beräkna förvirringsmatrisen

Pytonorm cm = confusion_matrix(actual,predicted)>

Steg 4: Rita upp förvirringsmatrisen med hjälp av den sjöborna värmekartan

Pytonorm 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 :

lista sortering java

Steg 5: Klassificeringsrapport baserad på förvirringsmått

Pytonorm print(classification_report(actual, predicted))>

Produktion :

precision återkalla f1-poäng stöd Hund 0,83 0,83 0,83 6 Inte Hund 0,75 0,75 0,75 4 noggrannhet 0,80 10 makrogenomsnitt 0,79 0,79 0,79 10 vägt medelvärde 0,80 0,80 08.

Förvirringsmatris för klassificering i flera klasser

Låt oss nu tänka på att det finns tre klasser. En 3X3 förvirringsmatris visas nedan för bilden med tre klasser.

Här är TP= Sant positiv, FP= Falskt positiv, FN= Falskt negativ.

IndexFaktiskFörutspåttStadFPFN
1KattKatt100
2HundHund100
3HästHund011
4KattKatt100
5HundHund100
6KattKatt100
7HundHund100
8HästHäst100
9HästHäst100
10KattHund011
  • Sant positiva (TP): 8 (1+1+0+1+1+1+1+1+1+0)
  • Falskt positiva (FP): 2 (0+0+1+0+0+0+0+0+0+1)
  • Falskt negativ (FN): 2 (0+0+1+0+0+0+0+0+0+1)

En 3X3 förvirringsmatris visas nedan för tre klasser.

vad är mac os

Förutspått

Katt

Hund

Häst


Faktisk

Katt

Stad

FP

FN

Hund

FP

Stad

FN

Häst

FN

FP

Stad

Klassmässig sammanfattning:

  • För katt: [TP=3,FP=0,FN=1]
    • Index 1: Sant positivt (katt faktiskt, förutspådd katt)
    • Index 4: Sant positivt (Katt faktiskt, Katt förutspått)
    • Index 6: Sant positivt (Katt faktiskt, Katt förutspått)
    • Index 10: Falskt negativt (faktisk katt, förutspådd hund)
  • För hund: [TP=3,FP=2,FN=0]
    • Index 2: Sant positivt (Faktisk hund, förutspådd hund)
    • Index 5: Sant positivt (Faktisk hund, förutspådd hund)
    • Index 7: Sant positivt (Faktisk hund, förutspådd hund)
    • Index 10: Falskt positivt (aktuell katt, förutspådd hund)
    • Index 3: Falskt positivt (häst faktiskt, förutspått hund)
  • För häst: [TP=2,FP=0,FN=1]
    • Index 8: Sant positivt (häst faktiskt, förutspådd häst)
    • Index 9: Sant positivt (häst faktiskt, förutspådd häst)
    • Index 3: Falskt negativt (faktisk häst, förutspådd hund)

Då blir förvirringsmatrisen:

Förutspått

Katt

Hund

Häst


Faktisk

Katt

TP(3)

FP(1)

FN(0)

Hund

FN(0)

TP(3)

FN(1)

Häst

FN(1)

FP(1)

TP(2)

Implementering av förvirringsmatris för binär klassificering med Python

Steg 1: Importera nödvändiga bibliotek

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

Steg 2: Skapa NumPy-arrayen för faktiska och förutspådda etiketter

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

Steg 3: Beräkna förvirringsmatrisen

Pytonorm cm = confusion_matrix(actual,predicted)>

Steg 4: Rita upp förvirringsmatrisen med hjälp av den sjöborna värmekartan

Pytonorm 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:

Steg 5: Klassificeringsrapport baserad på förvirringsmått

Pytonorm print(classification_report(actual, predicted))>

Produktion :

precision återkalla f1-poäng stöd Katt 1,00 0,75 0,86 4 Hund 0,60 1,00 0,75 3 Häst 1,00 0,67 0,80 3 noggrannhet 0,80 10 makro medel 0,87 0,81 0,80 10 vikt 81 0,80 10 vikt.

Slutsats

Sammanfattningsvis är förvirringsmatrisen ett viktigt instrument för att utvärdera effektiviteten hos klassificeringsmodeller. Insikter om en modells noggrannhet, precision, återkallelse och allmänna effektivitet vid klassificering av instanser tillhandahålls av den grundliga analysen av sanna positiva, sanna negativa, falska positiva och falska negativa förutsägelser som den erbjuder. Artikeln gav exempel för att illustrera varje mätvärdes beräkning och diskuterade dess betydelse. Den visade också hur förvirringsmatriser kan implementeras i Python för binära och multi-klassklassificeringsscenarier. Utövare kan fatta välinformerade beslut angående modellprestanda – särskilt när de hanterar obalanserade klassfördelningar – genom att förstå och tillämpa dessa mått.

Vanliga frågor om Confusion Matrix

F. Hur tolkar man en förvirringsmatris?

En förvirringsmatris sammanfattar en klassificeringsmodells prestanda, med poster som representerar sanna positiva, sanna negativa, falska positiva och falska negativa instanser, vilket ger insikter om modellens noggrannhet och fel.

F. Vilka är fördelarna med att använda förvirringsmatris?

Förvirringsmatrisen ger en omfattande utvärdering av en klassificeringsmodells prestanda, ger insikter om sanna positiva, sanna negativa, falska positiva och falska negativa, vilket underlättar nyanserad analys utöver grundläggande noggrannhet.

F. Vilka är några exempel på förvirringsmatrisapplikationer?

Förvirringsmatriser hittar tillämpningar inom olika områden, inklusive medicinsk diagnos (identifiering av sanna/falska positiva/negativa för sjukdomar), bedrägeriupptäckt, sentimentanalys och bedömning av noggrannhet för bildigenkänning.

F. Vad är förvirringsmatrisdiagrammet?

Ett förvirringsmatrisdiagram representerar visuellt prestandan hos en klassificeringsmodell. Den visar sanna positiva, sanna negativa, falska positiva och falska negativa värden i ett strukturerat matrisformat.

F. Vilka är de tre värdena för förvirringsmatrisen?

De tre värdena i förvirringsmatrisen är sant positiva (korrekt predikterade positiva instanser), sant negativa (korrekt predikterade negativa instanser) och falskt positiva (felaktigt predikterade positiva instanser).