Modelbeoordeling
Gegevens splitsen
Na het trainen van een neuraal netwerk is het essentieel om te evalueren hoe goed het presteert op onbekende gegevens. Deze evaluatie helpt bepalen of het model betekenisvolle patronen heeft geleerd of slechts de trainingsvoorbeelden heeft gememoriseerd. Hiervoor wordt de dataset verdeeld in twee delen:
- Trainingsset — gebruikt om het neuraal netwerk te trainen door de gewichten en biases aan te passen via backpropagation;
- Testset — gebruikt na het trainen om te evalueren hoe goed het model generaliseert naar nieuwe, onbekende gegevens.
Een gebruikelijke verdeling is 80% voor training en 20% voor testen, hoewel deze verhouding kan variëren afhankelijk van de grootte en complexiteit van de dataset.
Het splitsen van de gegevens gebeurt doorgaans 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 bepaalt welk deel van de gegevens wordt gereserveerd voor testen. Bijvoorbeeld, met test_size=0.1 wordt 10% van de gegevens gebruikt voor testen en 90% voor training.
Als het model goed presteert op de trainingsset maar slecht op de testset, kan er sprake zijn van overfitting — het leren van patronen die te specifiek zijn voor de trainingsgegevens in plaats van te generaliseren naar nieuwe voorbeelden. Het doel is om goede prestaties op beide datasets te behalen, zodat het model goed generaliseert.
Zodra de gegevens zijn gesplitst en het model is getraind, moet de prestatie worden gemeten met geschikte evaluatiemaatstaven, afhankelijk van de specifieke classificatietaak.
Classificatiemaatstaven
Voor classificatieproblemen kunnen verschillende belangrijke maatstaven worden gebruikt om de voorspellingen van het model te evalueren:
- Nauwkeurigheid;
- Precisie;
- Recall;
- F1-score.
Aangezien een perceptron binaire classificatie uitvoert, helpt het opstellen van een confusiematrix om deze maatstaven beter te begrijpen.
Een confusiematrix is een tabel die de classificatieprestaties 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 waarin 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 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 het harmonisch gemiddelde van precisie en recall, en biedt een gebalanceerde maatstaf wanneer zowel false positives als false negatives van belang zijn. Dit is nuttig wanneer de dataset niet in balans 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.
Awesome!
Completion rate improved to 4
Modelbeoordeling
Veeg om het menu te tonen
Gegevens splitsen
Na het trainen van een neuraal netwerk is het essentieel om te evalueren hoe goed het presteert op onbekende gegevens. Deze evaluatie helpt bepalen of het model betekenisvolle patronen heeft geleerd of slechts de trainingsvoorbeelden heeft gememoriseerd. Hiervoor wordt de dataset verdeeld in twee delen:
- Trainingsset — gebruikt om het neuraal netwerk te trainen door de gewichten en biases aan te passen via backpropagation;
- Testset — gebruikt na het trainen om te evalueren hoe goed het model generaliseert naar nieuwe, onbekende gegevens.
Een gebruikelijke verdeling is 80% voor training en 20% voor testen, hoewel deze verhouding kan variëren afhankelijk van de grootte en complexiteit van de dataset.
Het splitsen van de gegevens gebeurt doorgaans 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 bepaalt welk deel van de gegevens wordt gereserveerd voor testen. Bijvoorbeeld, met test_size=0.1 wordt 10% van de gegevens gebruikt voor testen en 90% voor training.
Als het model goed presteert op de trainingsset maar slecht op de testset, kan er sprake zijn van overfitting — het leren van patronen die te specifiek zijn voor de trainingsgegevens in plaats van te generaliseren naar nieuwe voorbeelden. Het doel is om goede prestaties op beide datasets te behalen, zodat het model goed generaliseert.
Zodra de gegevens zijn gesplitst en het model is getraind, moet de prestatie worden gemeten met geschikte evaluatiemaatstaven, afhankelijk van de specifieke classificatietaak.
Classificatiemaatstaven
Voor classificatieproblemen kunnen verschillende belangrijke maatstaven worden gebruikt om de voorspellingen van het model te evalueren:
- Nauwkeurigheid;
- Precisie;
- Recall;
- F1-score.
Aangezien een perceptron binaire classificatie uitvoert, helpt het opstellen van een confusiematrix om deze maatstaven beter te begrijpen.
Een confusiematrix is een tabel die de classificatieprestaties 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 waarin 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 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 het harmonisch gemiddelde van precisie en recall, en biedt een gebalanceerde maatstaf wanneer zowel false positives als false negatives van belang zijn. Dit is nuttig wanneer de dataset niet in balans 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!