Datakwaliteit: waarom validatie meer tijd kost dan je denkt
Je hebt de data. Je hebt het model. De pipeline draait. Klaar, toch? Niet dus. Bij een recent project voor een revalidatiekliniek ontdekten we tijdens de validatiefase vijf categorieën datafouten die elk op zichzelf het model onbruikbaar hadden gemaakt. Geen van deze fouten was zichtbaar bij een eerste inspectie van de data.
De context
We bouwden een machine learning pipeline die op basis van vragenlijstdata en patiëntkenmerken behandelresultaten voorspelt. De brondata kwam uit een elektronisch patiëntendossier. Op het oog zag alles er correct uit: tabellen gevuld, velden aanwezig, types klopten. Pas bij systematische validatie - rij voor rij, variabele voor variabele - kwamen de problemen naar boven.
Vijf problemen die je niet ziet zonder validatie
1. Leeftijden die er bijna goed uitzagen
220 patiënten hadden een incorrect berekende leeftijd. De oorzaak: een subtiel verschil in het timestamp-component van het geboortedatumveld. Het verschil was klein genoeg om niet op te vallen in een steekproef, maar groot genoeg om leeftijden met één jaar te verschuiven. In een model waar leeftijd een predictor is, maakt dat uit.
2. Ontbrekende vragenlijsten
122 patiënten bleken geen ingevulde vragenlijst te hebben. Ze waren technisch aanwezig in de dataset - er bestond een patiëntrecord - maar de bijbehorende vragenlijstdata ontbrak volledig. Deze patiënten moesten expliciet worden uitgesloten. Zonder die stap zou het model trainen op lege of default waarden, alsof dat echte antwoorden waren.
3. Verkeerde score-aggregatie
Bij 11 variabelen werd een somscore berekend waar eigenlijk een categorisatie nodig was. Het verschil: een score van 3+4+2=9 versus een categorisering naar “matig”. Het model verwacht categorieën, geen optellingen. Dit is het type fout dat pas zichtbaar wordt als je de originele scorehandleiding erbij pakt - niet als je alleen naar de data kijkt.
4. Null is niet nul
Drie conditionele variabelen (het type dat alleen wordt ingevuld als een eerdere vraag positief is beantwoord) werden als 0 behandeld wanneer ze null waren. Maar null betekent hier “vraag niet van toepassing”, terwijl 0 betekent “vraag beantwoord met nee/geen”. Dat onderscheid is inhoudelijk relevant en beïnvloedt de modeluitkomst direct.
5. Meetmomenten door elkaar
De dataset bevatte metingen van meerdere meetmomenten. Voor het model was alleen het eerste meetmoment (T0) relevant. Zonder expliciete filtering op meetmoment werden waarden van latere metingen meegenomen in de berekening - waardoor scores werden opgeteld die niet bij elkaar hoorden.
Waarom dit ertoe doet
Elk van deze vijf problemen was technisch subtiel. Geen crashes, geen foutmeldingen, geen ontbrekende tabellen. De data zag er goed uit. En dat is precies het gevaar: een model dat traint op incorrecte maar plausibele data produceert resultaten die er ook plausibel uitzien. Je merkt het pas als je de uitkomsten inhoudelijk toetst - of als een domeinexpert zegt: “dit klopt niet.”
In elk domein waar beslissingen op data worden gebaseerd, is dat een onacceptabel risico.
De les: bouw een validatieprotocol
Na dit project hanteren we een vast validatieprotocol voor elke data pipeline:
- Veldvalidatie: elk veld vergelijken met de originele definitie en scorehandleiding. Niet aannemen dat de databasenaam de lading dekt.
- Randgevallen expliciet afhandelen: null-waarden, ontbrekende records, en conditionele logica moeten gedocumenteerde regels hebben.
- Aggregatiecontrole: elke berekende variabele verifiëren tegen de oorspronkelijke methode. Sommatie versus categorisatie is een veelgemaakte fout.
- Filtervalidatie: meetmomenten, tijdsperiodes, en inclusiecriteria expliciet toetsen. Ga er niet vanuit dat de data al gefilterd is.
- Steekproefcontrole met domeinexpert: neem een subset van resultaten door met iemand die de domeincontext begrijpt.
Conclusie
Datakwaliteit is geen checkbox. Het is een discipline. De validatiefase van dit project kostte meer tijd dan de initiële pipeline-bouw - en dat is precies hoe het hoort. Want een model dat draait op foute data is erger dan geen model.
Investeer in validatie voordat je in productie gaat. Niet achteraf. Niet als bijzaak. Als fundament.