Thanks to visit codestin.com
Credit goes to www.datacamp.com

Ga naar hoofdinhoud

Inzicht in datadrift en modeldrift: driftdetectie in Python

Navigeer de valkuilen van modeldrift en bekijk onze praktische gids voor monitoring van datadrift.
Bijgewerkt 25 mei 2026  · 9 min lezen

"Drift" is een term in machine learning die beschrijft hoe de performance van een model in productie langzaam slechter wordt naarmate de tijd verstrijkt. Dat kan om verschillende redenen gebeuren, zoals veranderingen in de verdeling van de invoergegevens in de tijd of doordat de relatie tussen de input (x) en de gewenste target (y) verandert. 

Drift kan een groot probleem zijn wanneer we machine learning in de echte wereld gebruiken, waar data vaak dynamisch is en voortdurend verandert. In dit artikel duiken we in waarom modellen driften, welke soorten drift er zijn, welke algoritmen je kunt gebruiken om ze te detecteren, en sluiten we af met een open-source implementatie van driftdetectie in Python.

Wat is drift?

Machine learning-modellen worden getraind met historische data, maar zodra ze in de echte wereld worden ingezet, kunnen ze verouderen en in de loop van de tijd nauwkeurigheid verliezen door een fenomeen dat drift heet. Drift is de verandering in de tijd van de statistische eigenschappen van de data waarmee een model is getraind. Dit kan ertoe leiden dat het model minder accuraat wordt of anders presteert dan bedoeld. 

Met andere woorden: "drift" is het afnemen van het vermogen van een model om nauwkeurige voorspellingen te doen door veranderingen in de omgeving waarin het wordt gebruikt.

Waarom driften machine learning-modellen?

Er zijn verschillende redenen waarom machine learning-modellen in de loop van de tijd kunnen driften. 

Een veelvoorkomende reden is simpelweg dat de data waarop het model is getraind verouderd raakt of de huidige omstandigheden niet meer weerspiegelt. 

Neem bijvoorbeeld een model dat is getraind om de aandelenkoers van een bedrijf te voorspellen op basis van historische data. Als we het model trainen met data uit een stabiele markt, kan het aanvankelijk goed presteren. Maar als de markt na verloop van tijd volatieler wordt, kan het model de koers niet meer nauwkeurig voorspellen omdat de statistische eigenschappen van de data zijn veranderd.

Een andere reden voor modeldrift is dat het model niet is ontworpen om veranderingen in de data op te vangen. Sommige modellen kunnen beter met dataveranderingen omgaan dan andere, maar geen enkel model kan drift volledig voorkomen. 

Soorten drift

Laten we de twee verschillende soorten drift bekijken om rekening mee te houden:

1. Conceptdrift

Conceptdrift, ook wel modeldrift genoemd, treedt op wanneer de taak waarvoor het model is ontworpen in de loop van de tijd verandert. Stel dat een model is getraind om spammails te detecteren op basis van de inhoud. Als het type spammails dat mensen ontvangen aanzienlijk verandert, kan het model spam niet meer goed herkennen.

Conceptdrift kan verder worden onderverdeeld in vier categorieën (Learning under Concept Drift: A Review, Jie Lu et al.):

  • Plotselinge drift
  • Geleidelijke drift
  • Incrementele drift
  • Terugkerende concepten

Conceptdrift

Bron: https://arxiv.org/pdf/2004.05785.pdf

2. Datadrift

Datadrift, ook wel covariateshift genoemd, treedt op wanneer de verdeling van de inputdata in de tijd verandert. Stel bijvoorbeeld een model voor dat is getraind om de kans te voorspellen dat een klant een product koopt op basis van leeftijd en inkomen. Als de verdeling van leeftijden en inkomens van klanten in de loop van de tijd aanzienlijk verandert, kan het model de koopkans niet meer nauwkeurig voorspellen.

Het is belangrijk om zowel conceptdrift als datadrift te kennen en stappen te ondernemen om de effecten te voorkomen of te beperken. Strategieën zijn onder andere het continu monitoren en evalueren van de performance van een model, het updaten van het model met nieuwe data, en het gebruik van modellen die robuuster zijn tegen drift.

Je kunt meer leren over post-deployment data science, zoals drift, in onze DataFramed-podcastaflevering. 

3. LLM- en embeddingdrift

LLM’s introduceren een soort drift waarvoor de bovenstaande methoden niet zijn ontworpen. De data zijn geen rijen in een tabel — het is vrije tekst — en wat in de tijd verschuift is meestal de betekenis van wat gebruikers vragen. Er wordt nu gedacht dat er drie vormen van LLM-drift zijn om te monitoren.

Embeddingdrift

Embeddingdrift treedt op wanneer de betekenis van de tekst die gebruikers naar een model sturen verandert, zelfs als de tekst aan de oppervlakte hetzelfde lijkt. LLM’s zetten tekst om in lange lijsten met getallen, embeddings genoemd, en drift kan in die getallen zichtbaar worden zonder dat dit opvalt in wat je normaal gesproken zou meten.

Stel je een supportchatbot voor die aanvankelijk vooral vragen over setup en onboarding afhandelde. Zes maanden later zijn het volume en de gemiddelde lengte van berichten onveranderd, maar vragen gebruikers nu vooral over facturatie en opzeggingen. De tekststatistieken lijken stabiel, maar de embeddingverdeling is verschoven. Om dit te detecteren vergelijken teams batches recente embeddings met een referentiebatch via een statistische afstandsmaat.

Prompt- of inputdrift

Promptdrift is hetzelfde idee als embeddingdrift, maar één niveau hoger gevolgd. In plaats van ruwe embeddings te vergelijken, groepeer je binnenkomende queries in categorieën — met een classifier of een andere LLM — en let je op verschuivingen in de mix.

Stel dat een interne code-assistent die is gelanceerd voor backend engineers geleidelijk verkeer begint te krijgen van data scientists met pandas-vragen. De assistent kan nog steeds bekwaam antwoorden, maar de populatie die hij bedient is niet langer degene waarop hij is getest, en de system prompt of retrieval-index kan na verloop van tijd minder goed aansluiten.

Rubricdrift

Rubricdrift is een verandering in de tijd in de kwaliteitsscores die een geautomatiseerde beoordelaar geeft aan de output van een model. Veel productieteams gebruiken nu een LLM als jurylid, dat elke response beoordeelt op zaken als behulpzaamheid, nauwkeurigheid of toon. Als die scores voor dezelfde soorten input beginnen te dalen, is er meestal iets veranderd — het model achter een API, de documenten die worden opgehaald, of de gebruikersmix.

Wat rubricdrift extra nuttig maakt, is dat het je een kwaliteitsignaal geeft zonder ground-truthlabels nodig te hebben, die zelden realtime beschikbaar zijn voor generatieve output.

Hoe detecteer je drift?

Er zijn twee manieren om drift te detecteren:

1. Machine learning-modelbenadering: modelgebaseerde aanpak om te bepalen of de binnenkomende inputdata is gedrift of niet.

2. Statistische toetsen: er zijn veel statistische toetsen om datadrift te detecteren. Ze zijn grofweg in drie categorieën in te delen: 

    • Methoden voor sequentieanalyse 
    • Een aangepast model om drift te detecteren 
    • Tijdverdelingsmethode, die heel gebruikelijk is. 

Op tijdsverdeling gebaseerde methoden gebruiken statistische technieken om het verschil tussen twee kansverdelingen te berekenen om drift te detecteren. Deze methoden omvatten de Population Stability Index, KL-divergence, JS-divergence, de KS-toets en de Wasserstein-metriek. 

Algoritmen voor het detecteren van datadrift

Kolmogorov-Smirnov-(K-S)toets

De Kolmogorov-Smirnov-(K-S)toets is een niet-parametrische statistische toets die wordt gebruikt om te bepalen of twee datasets uit dezelfde verdeling komen. Hij wordt vaak gebruikt om te testen of een steekproef uit een specifieke populatie komt of om twee steekproeven te vergelijken om te bepalen of ze uit dezelfde populatie komen.

De nulhypothese in deze toets is dat de verdelingen hetzelfde zijn. Als deze hypothese wordt verworpen, wijst dat op drift in het model.

De K-S-toets is een nuttige tool om datasets te vergelijken en te bepalen of ze uit dezelfde verdeling komen.

Population Stability Index

De Population Stability Index (PSI) is een statistische maatstaf die wordt gebruikt om de verdeling van een categorische variabele in twee verschillende datasets te vergelijken. 

De Population Stability Index (PSI) wordt gebruikt om te meten hoeveel de verdeling van een variabele is veranderd tussen twee steekproeven of in de tijd. Hij wordt vaak ingezet om veranderingen in de kenmerken van een populatie te monitoren en om mogelijke problemen met de performance van een machine learning-model te identificeren.

De PSI is oorspronkelijk ontwikkeld om veranderingen in de verdeling van scores in riskscorecards te monitoren, maar wordt nu gebruikt om verdelingsverschuivingen te onderzoeken voor alle modelgerelateerde attributen, waaronder zowel afhankelijke als onafhankelijke variabelen. 

Een hoge PSI-waarde duidt op een significant verschil tussen de verdelingen van de variabele in de twee datasets, wat kan wijzen op drift in het model. 

Als de verdeling van een variabele aanzienlijk is veranderd, of als meerdere variabelen in zekere mate zijn verschoven, kan het nodig zijn het model te herkalibreren of opnieuw op te bouwen om de performance te verbeteren.

Page-Hinkley-methode

De Page-Hinkley-methode is een statistische methode om veranderingen in het gemiddelde van een datariem in de tijd te detecteren. Ze wordt vaak gebruikt om de performance van machine learning-modellen te monitoren en veranderingen in de dataverdeling te signaleren die op modeldrift kunnen duiden.

Om de Page-Hinkley-methode te gebruiken, definieer je eerst een drempelwaarde en een beslisfunctie. De drempelwaarde is de grens waarboven een verandering in het gemiddelde als significant wordt beschouwd, en de beslisfunctie geeft 1 terug als een verandering is gedetecteerd en 0 als er geen verandering is gedetecteerd.

Vervolgens bereken je op elk tijdstip het gemiddelde van de datariem en pas je de beslisfunctie toe om te bepalen of er een verandering heeft plaatsgevonden. Als de beslisfunctie 1 teruggeeft, betekent dit dat er een verandering is gedetecteerd en dat het model mogelijk aan het driften is.

De Page-Hinkley-methode is een eenvoudige en effectieve manier om veranderingen in het gemiddelde van een datariem in de tijd te detecteren. Ze is vooral handig voor het opsporen van kleine veranderingen die niet meteen zichtbaar zijn als je naar de data kijkt. Het is echter belangrijk om de drempelwaarde en beslisfunctie zorgvuldig te kiezen, zodat de methode gevoelig genoeg is om veranderingen te detecteren, maar niet zo gevoelig dat er valse alarmen ontstaan.

Implementatie van driftdetectie in Python

In deze sectie gebruiken we Evidently om drift te detecteren. Evidently is een open-source Python-bibliotheek voor data scientists en engineers die met machine learning werken. Het helpt bij het testen, evalueren en volgen van de prestaties van modellen, van validatie tot productie.

Bibliotheken importeren

import pandas as pd
import numpy as np
from sklearn import datasets

from evidently import Report
from evidently.presets import DataDriftPreset

Dataset importeren en referentie- en targetpartities maken

# create ref and cur dataset for drift detection
adult_data = datasets.fetch_openml(name='adult', version=2, as_frame=True)
adult = adult_data.frame

adult_ref = adult[~adult.education.isin(['Some-college', 'HS-grad', 'Bachelors'])].copy()
adult_cur = adult[adult.education.isin(['Some-college', 'HS-grad', 'Bachelors'])].copy()

adult_cur.iloc[:2000, 3:5] = np.nan

Driftrapport genereren

#dataset-level metrics
report = Report([DataDriftPreset()], include_tests=True)
my_eval = report.run(current_data=adult_cur, reference_data=adult_ref)
my_eval

Driftdetectiedashboard

Driftdetectiedashboard - gemaakt met EvidentlyAI

Driftrapport exporteren in JSON-indeling

#report in a JSON format
my_eval.json()

Bekijk de complete Datacamp-notebook hier.

Conclusie

Data- en modeldrift kunnen aanzienlijke uitdagingen vormen voor machine learning-systemen in productie. Door de oorzaken en effecten van drift te begrijpen en effectieve monitoringpraktijken te implementeren, zorg je ervoor dat je modellen in de tijd accuraat en betrouwbaar blijven. 

Het monitoren van de performance van je modellen, het gebruiken van een driftdetectiemodel en regelmatig opnieuw trainen op bijgewerkte data zijn slechts enkele best practices om de risico’s van drift te beperken. Door proactief met driftdetectie om te gaan, blijft je machine learning-systeem waarde leveren aan je organisatie.

Het monitoren van modellen op drift is slechts één aspect van het bredere domein MLOps. Inzicht in MLOps-concepten is essentieel voor elke data scientist, engineer of leider om modellen van een lokale notebook naar een werkend productiemodel te brengen. 

Wil je dieper ingaan op MLOps en hoe dit je carrière kan versterken? Bekijk dan onze cursus MLOps Concepts. Je leert wat MLOps is, welke fasen er in MLOps-processen zitten en welke niveaus van MLOps-volwassenheid er zijn. Na het leren van de essentiële MLOps-concepten ben je goed uitgerust om machine learning continu, betrouwbaar en efficiënt te implementeren.


Moez Ali's photo
Author
Moez Ali
Codestin Search App
Codestin Search App

Data scientist, oprichter en maker van PyCaret

Veelgestelde vragen over driftdetectie

Wat is modeldrift in machine learning?

Modeldrift in machine learning treedt op wanneer de performance van een model op nieuwe data afwijkt van de prestaties op de trainingsdata waarop het is gebouwd. Dit kan om allerlei redenen gebeuren, waaronder veranderingen in de dataverdeling in de tijd, de toevoeging van nieuwe data die niet past bij de oorspronkelijke aannames van het model, of het onvermogen van het model om zich aan te passen aan veranderende omstandigheden.

Waarom is modeldrift een probleem?

Modeldrift kan de performance en nauwkeurigheid van een model aanzienlijk beïnvloeden. Naarmate de voorspellingen minder betrouwbaar worden, kan dit leiden tot onjuiste beslissingen of acties met negatieve gevolgen. In de zorg kan drift bijvoorbeeld leiden tot verkeerde diagnoses of behandeladviezen, terwijl het in de financiële sector kan resulteren in slechte investeringsbeslissingen.

Hoe detecteer je modeldrift?

Er zijn verschillende manieren om te bepalen of een model drift vertoont, zoals statistische toetsen, driftdetectie-algoritmen en kijken naar hoe goed het model presteert. Sommige methoden zijn ontworpen om drift realtime te vinden, terwijl andere beter zijn voor periodieke of batchgewijze controles. Het is belangrijk om de juiste techniek te kiezen voor de specifieke toepassing en dataomgeving.

Hoe voorkom je modeldrift?

Het voorkomen van modeldrift vereist een combinatie van zorgvuldige modelkeuze, regelmatige monitoring en testen, en proactief ingrijpen. Dit kan inhouden dat je algoritmen gebruikt die robuuster zijn tegen drift, modellen regelmatig opnieuw traint op nieuwe data, of strategieën implementeert om drift actief aan te pakken zodra deze wordt gedetecteerd. Het is ook belangrijk om goed te begrijpen welke factoren drift kunnen veroorzaken, zodat je preventieve maatregelen kunt nemen.

Hoe beïnvloedt dataverdeling modeldrift?

De dataverdeling kan de performance van een model sterk beïnvloeden. Als de verdeling van data in de tijd verandert, kan dit leiden tot modeldrift, omdat het model nieuwe data die niet meer bij de oorspronkelijke aannames past mogelijk niet goed kan voorspellen. Dit kan op verschillende manieren gebeuren, bijvoorbeeld door natuurlijke variaties in de data, de toevoeging van nieuwe databronnen, of veranderingen in de onderliggende processen of systemen die de data genereren.

Is modeldrift omkeerbaar?

In sommige gevallen kun je modeldrift terugdraaien door het model opnieuw te trainen op nieuwe data of door parameters aan te passen. Dit is echter niet altijd mogelijk, zeker niet als de dataverdeling sterk is veranderd of het model te complex of te gespecialiseerd is geworden. In zulke situaties kan het nodig zijn om met een nieuw model te beginnen.

Is het mogelijk om modeldrift volledig te elimineren?

Modeldrift volledig elimineren is moeilijk, zo niet onmogelijk. Zelfs de meest robuuste en goed ontworpen modellen kunnen worden beïnvloed door veranderingen in de data of de onderliggende processen die deze genereren. De beste aanpak is om de impact van drift te beheren en te beperken via regelmatige monitoring, testen en ingrijpen.

Hoe beïnvloedt modeldrift de modelprestatie?

Modeldrift kan een aanzienlijke impact hebben op de performance van een model. Naarmate de voorspellingen minder nauwkeurig worden, kan dit leiden tot slechtere scores op belangrijke metrics zoals accuracy, precision, recall en de algehele effectiviteit. In sommige gevallen kan drift er zelfs toe leiden dat een model volledig faalt, met onjuiste of onbetrouwbare voorspellingen tot gevolg.

Hoe beïnvloedt modeldrift de modelnauwkeurigheid?

Modeldrift kan een negatieve invloed hebben op de nauwkeurigheid van een model. Als de voorspellingen minder accuraat worden, kan dat leiden tot verkeerde beslissingen of acties, met negatieve gevolgen in toepassingen in de echte wereld. In de zorg kan drift bijvoorbeeld leiden tot verkeerde diagnoses of behandeladviezen, terwijl het in financiën kan uitmonden in slechte investeringsbeslissingen. Het is belangrijk om regelmatig te monitoren en te testen op modeldrift om de nauwkeurigheid te behouden.

Onderwerpen

MLOps-cursussen

Cursus

MLOps-concepten

2 Hr
41.5K
Ontdek hoe MLOps machine learning-modellen van lokale notebooks kan omzetten in werkende modellen in productie die echte bedrijfswaarde opleveren.
Bekijk detailsCodestin Search App
Begin met de cursus
Meer zienCodestin Search App
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer zienMeer zien