Training data vs test data

De noodzaak van datasplitsing

Bij supervised learning wordt een dataset opgesplitst in ten minste twee delen: trainingsdata en testdata. De trainingsset wordt gebruikt om de parameters van het model te leren. De testset blijft tijdens training volledig buiten beeld en dient om de generalisatie te meten. Een veelgebruikte verdeling is 80/20 of 70/30, afhankelijk van de datasetgrootte. Bij kleine datasets wordt daarnaast een validatieset gebruikt, vaak via k-fold cross-validatie, om hyperparameters te tunen zonder de testset te raken. Het scheiden van data is essentieel omdat een model dat op dezelfde data wordt geëvalueerd als waarop het is getraind, een te optimistisch beeld geeft. Data leakage, waarbij informatie uit de testset per ongeluk in de training terechtkomt, leidt tot onbetrouwbare resultaten en moet strikt worden voorkomen.

Validatie, cross-validatie en generalisatie

Naast training en test bestaat er een validatieset voor het afstellen van hyperparameters zoals leersnelheid, regularisatie en netwerkdiepte. Bij k-fold cross-validatie wordt de data in k delen gesplitst; het model wordt k keer getraind op k-1 delen en gevalideerd op het resterende deel. Dit geeft een robuustere schatting van prestaties, vooral bij kleine datasets. Voor tijdreeksen wordt vaak een chronologische splitsing gebruikt, omdat willekeurige splitsing toekomstige informatie zou lekken. Generalisatie is het uiteindelijke doel: een model moet niet alleen goed presteren op trainingsdata, maar ook op nieuwe, ongeziene data. Wanneer een model goed presteert op training maar slecht op test, is sprake van overfitting. Wanneer het op beide slecht presteert, is sprake van underfitting. Het zorgvuldig ontwerpen van data-splitsingen is daarmee een kernonderdeel van verantwoorde modelontwikkeling.

Dit toepassen in
jouw bedrijf?

We vertalen het naar jouw processen en laten binnen een week een werkend prototype zien.