In machinaal leren Classificatie is het proces waarbij een gegeven set gegevens in verschillende categorieën wordt ingedeeld. Om de prestaties van het classificatiemodel te meten, gebruiken we bij machinaal leren de verwarringsmatrix . Via deze tutorial krijgt u inzicht in de betekenis van de verwarringsmatrix.
Wat is een verwarringsmatrix?
A verwarringsmatrix is een matrix die de prestaties van een machine learning-model samenvat op een set testgegevens. Het is een manier om het aantal nauwkeurige en onnauwkeurige instanties weer te geven op basis van de voorspellingen van het model. Het wordt vaak gebruikt om de prestaties van classificatiemodellen te meten, die tot doel hebben een categorisch label voor elke invoerinstantie te voorspellen.
De matrix geeft het aantal exemplaren weer dat door het model op de testgegevens is geproduceerd.
- Echt positieve punten (TP): treedt op wanneer het model nauwkeurig een positief gegevenspunt voorspelt.
- Echte negatieven (TN) : treedt op wanneer het model nauwkeurig een negatief gegevenspunt voorspelt.
- Valse positieven (FP) : treedt op wanneer het model een positief gegevenspunt onjuist voorspelt.
- Vals negatieven (FN) : treedt op wanneer het model een negatief gegevenspunt verkeerd voorspelt.
Waarom hebben we een verwarringsmatrix nodig?
Bij het beoordelen van de prestaties van een classificatiemodel is een verwarringsmatrix essentieel. Het biedt een grondige analyse van echt positieve, echt negatieve, fout-positieve en fout-negatieve voorspellingen, waardoor een dieper begrip van de eigenschappen van een model mogelijk wordt. herinnering, nauwkeurigheid, precisie, en algehele effectiviteit in klassenonderscheid. Wanneer er sprake is van een ongelijke klassenverdeling in een dataset, is deze matrix vooral nuttig bij het evalueren van de prestaties van een model die verder gaan dan de basisnauwkeurigheidsmetrieken.
Laten we de verwarringsmatrix begrijpen met de voorbeelden:
Verwarringsmatrix Voor binaire classificatie
Hieronder wordt een 2X2 verwarringsmatrix getoond voor de beeldherkenning met een Hond-afbeelding of Geen Hond-afbeelding.
| Werkelijk | ||
|---|---|---|---|
Hond samenvoegen sorteren | Niet Hond | ||
Voorspelde | Hond | Echt positief | Vals positief |
Niet Hond | Fout negatief | Echt negatief |
- Echt positief (TP): Het zijn de totale tellingen met zowel voorspelde als werkelijke waarden, Dog.
- Echt negatief (TN): Het zijn de totale tellingen met zowel voorspelde als werkelijke waarden die geen hond zijn.
- Vals positief (FP): Het zijn de totale tellingen met een voorspelling dat het Hond is, terwijl het in werkelijkheid Niet Hond is.
- Vals negatief (FN): Het zijn de totale tellingen met een voorspelling dat het geen hond is, terwijl het in werkelijkheid hond is.
Voorbeeld voor binaire classificatieproblemen
Inhoudsopgave | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
Werkelijk | Hond | Hond | Hond | Niet Hond | Hond | Niet Hond | Hond | Hond | Niet Hond | Niet Hond |
Voorspelde | Hond | Niet Hond | Hond | Niet Hond | Hond | Hond | Hond | Hond | Niet Hond | Niet Hond |
Resultaat | Stad | FN | Stad | TN | Stad | FP | Stad | Stad | TN | TN |
- Werkelijke hondenaantallen = 6
- Werkelijke niet-hondentellingen = 4
- Echte positieve tellingen = 5
- Vals-positieve tellingen = 1
- Echte negatieve tellingen = 3
- Vals-negatieve tellingen = 1
| Voorspelde | ||
|---|---|---|---|
Hond | Niet Hond | ||
Werkelijk | Hond | Echt positief | Fout negatief |
Niet Hond | Vals positief | Echt negatief |
Statistieken gebaseerd op verwarringsmatrixgegevens
1. Nauwkeurigheid
Nauwkeurigheid wordt gebruikt om de prestaties van het model te meten. Het is de verhouding tussen het totaal aantal correcte exemplaren en het totaal aantal exemplaren.
Voor het bovenstaande geval:
Nauwkeurigheid = (5+3)/(5+3+1+1) = 8/10 = 0,8
2. Precisie
Precisie is een maatstaf voor hoe nauwkeurig de positieve voorspellingen van een model zijn. Het wordt gedefinieerd als de verhouding tussen werkelijk positieve voorspellingen en het totale aantal positieve voorspellingen dat door het model wordt gedaan.
Voor het bovenstaande geval:
Precisie = 5/(5+1) =5/6 = 0,8333
3. Herinneren
Herinneren meet de effectiviteit van een classificatiemodel bij het identificeren van alle relevante instanties uit een dataset. Het is de verhouding tussen het aantal echt positieve (TP) exemplaren en de som van echt positieve en fout-negatieve (FN) exemplaren.
Voor het bovenstaande geval:
Oproepen = 5/(5+1) =5/6 = 0,8333
Opmerking: We gebruiken precisie als we valse positieven willen minimaliseren, wat van cruciaal belang is in scenario's zoals de detectie van spam-e-mail, waarbij het verkeerd classificeren van een niet-spambericht als spam kostbaar is. En we gebruiken terugroepactie wanneer het minimaliseren van fout-negatieven essentieel is, zoals bij medische diagnoses, waarbij het identificeren van alle feitelijk positieve gevallen van cruciaal belang is, zelfs als dit resulteert in enkele vals-positieve resultaten.
4. F1-score
F1-score wordt gebruikt om de algehele prestaties van een classificatiemodel te evalueren. Het is het harmonische gemiddelde van precisie en herinnering,
Voor het bovenstaande geval:
F1-score: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333
We balanceren precisie en herinnering met de F1-score wanneer een afweging tussen het minimaliseren van valse positieven en valse negatieven noodzakelijk is, zoals bij systemen voor het ophalen van informatie.
5. Specificiteit:
Specificiteit is een andere belangrijke maatstaf bij de evaluatie van classificatiemodellen, vooral bij binaire classificatie. Het meet het vermogen van een model om negatieve gevallen correct te identificeren. Specificiteit wordt ook wel het True Negative Rate genoemd.
Specificiteit=3/(1+3)=3/4=0,75
6. Type 1- en type 2-fout
Type 1-fout
Type 1-fout treedt op wanneer het model een positieve instantie voorspelt, maar deze in werkelijkheid negatief is. De nauwkeurigheid wordt beïnvloed door valse positieven, aangezien het de verhouding is tussen echte positieven en de som van echte positieven en valse positieven.
In een rechtszaalscenario doet zich bijvoorbeeld een Type 1-fout voor, vaak vals-positief genoemd, wanneer de rechtbank een persoon ten onrechte als schuldig veroordeelt, terwijl hij of zij in werkelijkheid onschuldig is aan het vermeende misdrijf. Deze ernstige fout kan diepgaande gevolgen hebben, die kunnen leiden tot de onrechtmatige bestraffing van een onschuldige persoon die het misdrijf in kwestie niet heeft begaan. Het voorkomen van type 1-fouten in gerechtelijke procedures is van cruciaal belang om ervoor te zorgen dat gerechtigheid accuraat wordt gediend en dat onschuldige individuen worden beschermd tegen ongerechtvaardigde schade en bestraffing.
Type 2-fout
Type 2-fout treedt op wanneer het model er niet in slaagt een positief exemplaar te voorspellen. Recall wordt direct beïnvloed door fout-negatieven, aangezien het de verhouding is tussen echt-positieven en de som van echt-positieven en fout-negatieven.
In de context van medische tests treedt een Type 2-fout op, vaak bekend als vals-negatief, wanneer een diagnostische test er niet in slaagt de aanwezigheid van een ziekte te detecteren bij een patiënt die deze daadwerkelijk heeft. De gevolgen van een dergelijke fout zijn aanzienlijk, omdat dit kan resulteren in een vertraagde diagnose en daaropvolgende behandeling.
Precisie legt de nadruk op het minimaliseren van valse positieven, terwijl herinnering zich richt op het minimaliseren van valse negatieven.
Implementatie van verwarringsmatrix voor binaire classificatie met behulp van Python
Stap 1: Importeer de benodigde bibliotheken
Python import numpy as np from sklearn.metrics import confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt> Stap 2: Maak de NumPy-array voor werkelijke en voorspelde labels
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'])> Stap 3: Bereken de verwarringsmatrix
Python cm = confusion_matrix(actual,predicted)> Stap 4: Teken de verwarringsmatrix met behulp van de seaborn heatmap
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()> Uitvoer :
uitpakken in Linux
Stap 5: Classificatierapport gebaseerd op verwarringsstatistieken
Python print(classification_report(actual, predicted))> Uitvoer :
precisie terugroepen f1-score ondersteuning Hond 0,83 0,83 0,83 6 Niet Hond 0,75 0,75 0,75 4 nauwkeurigheid 0,80 10 macro gemiddelde 0,79 0,79 0,79 10 gewogen gemiddelde 0,80 0,80 0,80 10
Verwarringsmatrix voor classificatie in meerdere klassen
Laten we nu eens kijken dat er drie klassen zijn. Hieronder wordt een 3X3 verwarringsmatrix weergegeven voor de afbeelding met drie klassen.
Hier is TP= waar positief, FP= vals positief, FN= vals negatief.
| Inhoudsopgave | Werkelijk | Voorspelde | Stad | FP | FN |
|---|---|---|---|---|---|
| 1 | Kat | Kat | 1 | 0 | 0 |
| 2 | Hond | Hond | 1 | 0 | 0 |
| 3 | Paard | Hond | 0 | 1 | 1 |
| 4 | Kat | Kat | 1 | 0 | 0 |
| 5 | Hond | Hond | 1 | 0 | 0 |
| 6 | Kat | Kat | 1 | 0 | 0 |
| 7 | Hond | Hond | 1 | 0 | 0 |
| 8 | Paard | Paard | 1 | 0 | 0 |
| 9 | Paard | Paard | 1 | 0 | 0 |
| 10 | Kat | Hond | 0 | 1 | 1 |
- Echte positieven (TP): 8 (1+1+0+1+1+1+1+1+1+0)
- Valse positieven (FP): 2 (0+0+1+0+0+0+0+0+0+1)
- Fout-negatieven (FN): 2 (0+0+1+0+0+0+0+0+0+1)
Hieronder wordt voor drie klassen een 3X3 verwarringsmatrix weergegeven.
| Voorspelde | |||
|---|---|---|---|---|
Kat | Hond | Paard | ||
| Kat | Stad | FP | FN |
Hond | FP | Stad | FN | |
Paard | FN | FP | Stad |
Klasse-gewijze samenvatting:
- Voor kat: [TP=3,FP=0,FN=1]
- Index 1: Echt positief (kat feitelijk, kat voorspeld)
- Index 4: Echt positief (kat feitelijk, kat voorspeld)
- Index 6: Echt positief (kat feitelijk, kat voorspeld)
- Index 10: Fout-negatief (kat feitelijk, hond voorspeld)
- Voor honden: [TP=3,FP=2,FN=0]
- Index 2: Echt positief (huidige hond, voorspelde hond)
- Index 5: Echt positief (huidige hond, voorspelde hond)
- Index 7: Echt positief (huidige hond, voorspelde hond)
- Index 10: Vals-positief (kat feitelijk, hond voorspeld)
- Index 3: Vals-positief (werkelijk paard, voorspelde hond)
- Voor paard: [TP=2,FP=0,FN=1]
- Index 8: Echt positief (actueel paard, voorspeld paard)
- Index 9: Echt positief (actueel paard, voorspeld paard)
- Index 3: Vals-negatief (werkelijk paard, voorspelde hond)
De verwarringsmatrix wordt dan:
| Voorspelde | |||
|---|---|---|---|---|
Kat | Hond | Paard | ||
| Kat | TP(3) | FP(1) | FN(0) |
Hond | FN(0) | TP(3) | FN(1) | |
Paard | FN(1) | FP(1) | TP(2) |
Implementatie van verwarringsmatrix voor binaire classificatie met behulp van Python
Stap 1: Importeer de benodigde bibliotheken
Python import numpy as np from sklearn.metrics import confusion_matrix, classification_report import seaborn as sns import matplotlib.pyplot as plt> Stap 2: Maak de NumPy-array voor werkelijke en voorspelde labels
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'])> Stap 3: Bereken de verwarringsmatrix
Python cm = confusion_matrix(actual,predicted)> Stap 4: Teken de verwarringsmatrix met behulp van de seaborn heatmap
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()> Uitgang:
Stap 5: Classificatierapport gebaseerd op verwarringsstatistieken
Python print(classification_report(actual, predicted))> Uitvoer :
precisie terugroepen f1-score ondersteuning Kat 1,00 0,75 0,86 4 Hond 0,60 1,00 0,75 3 Paard 1,00 0,67 0,80 3 nauwkeurigheid 0,80 10 macro gemiddelde 0,87 0,81 0,80 10 gewogen gemiddelde 0,88 0,80 0,81 10
Conclusie
Samenvattend is de verwarringsmatrix een essentieel instrument voor het evalueren van de effectiviteit van classificatiemodellen. Inzichten in de nauwkeurigheid, precisie, herinnering en algemene doeltreffendheid van een model bij het classificeren van gevallen worden verkregen door de grondige analyse van waar-positieve, waar-negatieve, vals-positieve en vals-negatieve voorspellingen die het model biedt. Het artikel gaf voorbeelden om de berekening van elke metriek te illustreren en besprak het belang ervan. Het demonstreerde ook hoe verwarringsmatrices in Python kunnen worden geïmplementeerd voor scenario's voor binaire classificatie en classificatie met meerdere klassen. Beoefenaars kunnen goed geïnformeerde beslissingen nemen met betrekking tot de prestaties van modellen – vooral als het gaat om onevenwichtige klassenverdelingen – door deze maatstaven te begrijpen en toe te passen.
tekenreeks in c
Veelgestelde vragen over de verwarringsmatrix
V. Hoe interpreteer ik een verwarringsmatrix?
Een verwarringsmatrix vat de prestaties van een classificatiemodel samen, met vermeldingen die echt positieve, echt negatieve, vals positieve en fout negatieve gevallen vertegenwoordigen, waardoor inzicht wordt verkregen in de nauwkeurigheid en fouten van het model.
V. Wat zijn de voordelen van het gebruik van de Verwarringsmatrix?
De verwarringsmatrix biedt een uitgebreide evaluatie van de prestaties van een classificatiemodel en biedt inzicht in echte positieven, echte negatieven, valse positieven en valse negatieven, wat een genuanceerde analyse mogelijk maakt die verder gaat dan de basisnauwkeurigheid.
Q. Wat zijn enkele voorbeelden van toepassingen van verwarringsmatrixen?
Verwarringsmatrices vinden toepassingen op verschillende gebieden, waaronder medische diagnose (het identificeren van echte/onwaar-positieve/negatieve waarden voor ziekten), fraudedetectie, sentimentanalyse en beoordeling van de nauwkeurigheid van beeldherkenning.
V. Wat is het verwarringsmatrixdiagram?
Een verwarringsmatrixdiagram geeft visueel de prestaties van een classificatiemodel weer. Het geeft waar-positieve, waar-negatieve, vals-positieve en vals-negatieve waarden weer in een gestructureerd matrixformaat.
V. Wat zijn de drie waarden van de verwarringsmatrix?
De drie waarden van de verwarringsmatrix zijn echt positief (correct voorspelde positieve gevallen), echt negatief (correct voorspelde negatieve gevallen) en vals positief (onjuist voorspelde positieve gevallen).