Modelbeoordeling
Gegevens splitsen
Na het trainen van een neuraal netwerk is het noodzakelijk om de prestatie ervan te evalueren op onbekende gegevens. Dit helpt te bepalen of het model daadwerkelijk bruikbare patronen heeft geleerd of slechts de trainingsgegevens heeft gememoriseerd. Hiervoor wordt de dataset opgesplitst in twee delen:
- Trainingsset: dit deel van de gegevens wordt gebruikt om het neuraal netwerk te trainen, waarbij het netwerk gewichten en biases aanpast via backpropagation;
- Testset: na het trainen wordt het model geëvalueerd op deze aparte dataset om te meten hoe goed het generaliseert naar nieuwe, onbekende voorbeelden.
Een gebruikelijke verdeling is 80% training / 20% testen, hoewel dit kan variëren afhankelijk van de grootte en complexiteit van de dataset.
Het splitsen van train/test wordt doorgaans uitgevoerd met de functie train_test_split()
uit de module sklearn.model_selection
:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)
De parameter test_size
geeft het aandeel van de dataset aan dat als testset wordt gebruikt. Bijvoorbeeld, als test_size=0.1
wordt ingesteld, betekent dit dat 10% van de gegevens wordt gebruikt voor testen, terwijl de overige 90% wordt gebruikt voor training.
Als een model goed presteert op de trainingsgegevens maar slecht op de testgegevens, kan er sprake zijn van overfitting; het model heeft dan de trainingsset gememoriseerd in plaats van generaliseerbare patronen te leren. Het doel is om een hoge testnauwkeurigheid te bereiken met behoud van goede generalisatie.
Na het trainen van het model moet de prestatie worden gekwantificeerd met behulp van metriek. De keuze van de metriek hangt af van de specifieke classificatietaak.
Classificatiemetrieken
Voor classificatieproblemen kunnen verschillende belangrijke metriek worden gebruikt om de voorspellingen van het model te evalueren:
- nauwkeurigheid;
- precisie;
- recall;
- F1-score.
Omdat een perceptron binaire classificatie uitvoert, helpt het opstellen van een confusiematrix om deze metriek beter te begrijpen.
Een confusiematrix is een tabel die de classificatieprestatie van het model samenvat door de voorspelde labels te vergelijken met de werkelijke labels. Het geeft inzicht in het aantal correcte en foutieve voorspellingen voor elke klasse (1
en 0
).
Nauwkeurigheid meet het aandeel correct geclassificeerde voorbeelden ten opzichte van het totaal. Als een model 90 van de 100 afbeeldingen correct classificeert, is de nauwkeurigheid 90%.
accuracy=allcorrect=TP+TN+FP+FNTP+TNHoewel nauwkeurigheid nuttig is, geeft het niet altijd een volledig beeld—vooral bij onevenwichtige datasets. In een dataset waar 95% van de voorbeelden tot één klasse behoort, kan een model 95% nauwkeurigheid behalen door altijd de meerderheidsklasse te voorspellen—zonder daadwerkelijk iets nuttigs te leren. In dergelijke gevallen kunnen precisie, recall of de F1-score informatiever zijn.
Precisie is het percentage correct voorspelde positieve gevallen ten opzichte van alle voorspelde positieven. Deze maat is vooral nuttig wanneer fout-positieven kostbaar zijn, zoals bij spamdetectie of fraudedetectie.
precision=predicted positivecorrect positive=TP+FPTPRecall (gevoeligheid) meet hoeveel van de daadwerkelijke positieve gevallen het model correct identificeert. Een hoge recall is essentieel in situaties waarin fout-negatieven geminimaliseerd moeten worden, zoals bij medische diagnoses.
recall=all positivecorrect positive=TP+FNTPF1-score is de harmonische gemiddelde van precisie en recall, en biedt een evenwichtige maat wanneer zowel false positives als false negatives van belang zijn. Dit is nuttig wanneer de dataset onevenwichtig is, wat betekent dat één klasse aanzienlijk vaker voorkomt dan de andere.
F1=precision+recall2×precision×recall1. Wat is het belangrijkste doel van het splitsen van je dataset in trainings- en testsets?
2. Waarom kan F1-score de voorkeur krijgen boven nauwkeurigheid bij een onevenwichtige dataset?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain what a confusion matrix is and how to interpret it?
How do I choose which metric to use for my classification problem?
Can you give examples of when to prioritize precision over recall, or vice versa?
Awesome!
Completion rate improved to 4
Modelbeoordeling
Veeg om het menu te tonen
Gegevens splitsen
Na het trainen van een neuraal netwerk is het noodzakelijk om de prestatie ervan te evalueren op onbekende gegevens. Dit helpt te bepalen of het model daadwerkelijk bruikbare patronen heeft geleerd of slechts de trainingsgegevens heeft gememoriseerd. Hiervoor wordt de dataset opgesplitst in twee delen:
- Trainingsset: dit deel van de gegevens wordt gebruikt om het neuraal netwerk te trainen, waarbij het netwerk gewichten en biases aanpast via backpropagation;
- Testset: na het trainen wordt het model geëvalueerd op deze aparte dataset om te meten hoe goed het generaliseert naar nieuwe, onbekende voorbeelden.
Een gebruikelijke verdeling is 80% training / 20% testen, hoewel dit kan variëren afhankelijk van de grootte en complexiteit van de dataset.
Het splitsen van train/test wordt doorgaans uitgevoerd met de functie train_test_split()
uit de module sklearn.model_selection
:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)
De parameter test_size
geeft het aandeel van de dataset aan dat als testset wordt gebruikt. Bijvoorbeeld, als test_size=0.1
wordt ingesteld, betekent dit dat 10% van de gegevens wordt gebruikt voor testen, terwijl de overige 90% wordt gebruikt voor training.
Als een model goed presteert op de trainingsgegevens maar slecht op de testgegevens, kan er sprake zijn van overfitting; het model heeft dan de trainingsset gememoriseerd in plaats van generaliseerbare patronen te leren. Het doel is om een hoge testnauwkeurigheid te bereiken met behoud van goede generalisatie.
Na het trainen van het model moet de prestatie worden gekwantificeerd met behulp van metriek. De keuze van de metriek hangt af van de specifieke classificatietaak.
Classificatiemetrieken
Voor classificatieproblemen kunnen verschillende belangrijke metriek worden gebruikt om de voorspellingen van het model te evalueren:
- nauwkeurigheid;
- precisie;
- recall;
- F1-score.
Omdat een perceptron binaire classificatie uitvoert, helpt het opstellen van een confusiematrix om deze metriek beter te begrijpen.
Een confusiematrix is een tabel die de classificatieprestatie van het model samenvat door de voorspelde labels te vergelijken met de werkelijke labels. Het geeft inzicht in het aantal correcte en foutieve voorspellingen voor elke klasse (1
en 0
).
Nauwkeurigheid meet het aandeel correct geclassificeerde voorbeelden ten opzichte van het totaal. Als een model 90 van de 100 afbeeldingen correct classificeert, is de nauwkeurigheid 90%.
accuracy=allcorrect=TP+TN+FP+FNTP+TNHoewel nauwkeurigheid nuttig is, geeft het niet altijd een volledig beeld—vooral bij onevenwichtige datasets. In een dataset waar 95% van de voorbeelden tot één klasse behoort, kan een model 95% nauwkeurigheid behalen door altijd de meerderheidsklasse te voorspellen—zonder daadwerkelijk iets nuttigs te leren. In dergelijke gevallen kunnen precisie, recall of de F1-score informatiever zijn.
Precisie is het percentage correct voorspelde positieve gevallen ten opzichte van alle voorspelde positieven. Deze maat is vooral nuttig wanneer fout-positieven kostbaar zijn, zoals bij spamdetectie of fraudedetectie.
precision=predicted positivecorrect positive=TP+FPTPRecall (gevoeligheid) meet hoeveel van de daadwerkelijke positieve gevallen het model correct identificeert. Een hoge recall is essentieel in situaties waarin fout-negatieven geminimaliseerd moeten worden, zoals bij medische diagnoses.
recall=all positivecorrect positive=TP+FNTPF1-score is de harmonische gemiddelde van precisie en recall, en biedt een evenwichtige maat wanneer zowel false positives als false negatives van belang zijn. Dit is nuttig wanneer de dataset onevenwichtig is, wat betekent dat één klasse aanzienlijk vaker voorkomt dan de andere.
F1=precision+recall2×precision×recall1. Wat is het belangrijkste doel van het splitsen van je dataset in trainings- en testsets?
2. Waarom kan F1-score de voorkeur krijgen boven nauwkeurigheid bij een onevenwichtige dataset?
Bedankt voor je feedback!