Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Modelbeoordeling | Neuraal Netwerk Vanaf Nul
Introductie tot Neurale Netwerken

bookModelbeoordeling

Gegevens splitsen

Nadat een neuraal netwerk is getraind, is het noodzakelijk om de prestaties te evalueren op onbekende gegevens. Dit helpt om 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, zodat het de gewichten en biases kan aanpassen 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 en de resterende 90% voor training.

Als een model goed presteert op de trainingsgegevens maar slecht op de testgegevens, kan er sprake zijn van overfitting: het model heeft 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 moeten de prestaties worden gekwantificeerd met behulp van metriek. De keuze van de metriek hangt af van de specifieke classificatietaak.

Classificatiemetriek

Voor classificatieproblemen kunnen verschillende belangrijke metriek 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 metriek beter te begrijpen.

Note
Definitie

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=correctall=TP+TNTP+TN+FP+FN\text{accuracy} = \frac {\text{correct}} {\text{all}} = \frac {TP + TN} {TP + TN + FP + FN}

Hoewel nauwkeurigheid nuttig is, geeft het niet altijd een volledig beeld—vooral niet 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=correct positivepredicted positive=TPTP+FP\text{precision} = \frac {\text{correct positive}} {\text{predicted positive}} = \frac {TP} {TP + FP}

Recall (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=correct positiveall positive=TPTP+FN\text{recall} = \frac {\text{correct positive}} {\text{all positive}} = \frac {TP} {TP + FN}

F1-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=2×precision×recallprecision+recall\text{F1} = \frac {2 \times \text{precision} \times \text{recall}} {\text{precision} + \text{recall}}

1. 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?

question mark

Wat is het belangrijkste doel van het splitsen van je dataset in trainings- en testsets?

Select the correct answer

question mark

Waarom kan F1-score de voorkeur krijgen boven nauwkeurigheid bij een onevenwichtige dataset?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 11

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 4

bookModelbeoordeling

Veeg om het menu te tonen

Gegevens splitsen

Nadat een neuraal netwerk is getraind, is het noodzakelijk om de prestaties te evalueren op onbekende gegevens. Dit helpt om 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, zodat het de gewichten en biases kan aanpassen 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 en de resterende 90% voor training.

Als een model goed presteert op de trainingsgegevens maar slecht op de testgegevens, kan er sprake zijn van overfitting: het model heeft 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 moeten de prestaties worden gekwantificeerd met behulp van metriek. De keuze van de metriek hangt af van de specifieke classificatietaak.

Classificatiemetriek

Voor classificatieproblemen kunnen verschillende belangrijke metriek 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 metriek beter te begrijpen.

Note
Definitie

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=correctall=TP+TNTP+TN+FP+FN\text{accuracy} = \frac {\text{correct}} {\text{all}} = \frac {TP + TN} {TP + TN + FP + FN}

Hoewel nauwkeurigheid nuttig is, geeft het niet altijd een volledig beeld—vooral niet 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=correct positivepredicted positive=TPTP+FP\text{precision} = \frac {\text{correct positive}} {\text{predicted positive}} = \frac {TP} {TP + FP}

Recall (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=correct positiveall positive=TPTP+FN\text{recall} = \frac {\text{correct positive}} {\text{all positive}} = \frac {TP} {TP + FN}

F1-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=2×precision×recallprecision+recall\text{F1} = \frac {2 \times \text{precision} \times \text{recall}} {\text{precision} + \text{recall}}

1. 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?

question mark

Wat is het belangrijkste doel van het splitsen van je dataset in trainings- en testsets?

Select the correct answer

question mark

Waarom kan F1-score de voorkeur krijgen boven nauwkeurigheid bij een onevenwichtige dataset?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 11
some-alt