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 | Falskt positivt |
Inte hund | Falskt negativ | Riktigt negativ |
- 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 | Falskt negativ |
Inte hund | Falskt positivt | Riktigt negativ |
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.
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.
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.
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,
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.
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.
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.
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.
| Index | Faktisk | Förutspått | Stad | FP | FN |
|---|---|---|---|---|---|
| 1 | Katt | Katt | 1 | 0 | 0 |
| 2 | Hund | Hund | 1 | 0 | 0 |
| 3 | Häst | 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 | Häst | Häst | 1 | 0 | 0 |
| 9 | Häst | Häst | 1 | 0 | 0 |
| 10 | Katt | Hund | 0 | 1 | 1 |
- 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 | ||
| 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 | ||
| 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).