Ga naar hoofdinhoud

Random Forest-regressie: een complete gids

Hoe random forest-regressie werkt, waar het faalt, en hoe je het evalueert, afstemt en interpreteert. Inclusief een Python-implementatie en kader voor modelvergelijking.
Bijgewerkt 17 jun 2026  · 12 min lezen

Random Forest-regressie is een van de betrouwbaarste manieren om niet-lineaire tabellaire data te modelleren met minimale setup. Je hebt snel een werkend model, zelfs wanneer de data ruis bevat of relaties niet duidelijk gedefinieerd zijn.

Deze gids neemt je mee door de volledige workflow van Random Forest-regressie. Je begrijpt hoe het algoritme werkt en implementeert het in Python. We bespreken ook evaluatietechnieken en finetuning voor betere prestaties.

Wat is Random Forest-regressie?

Random forest-regressie is een ensembletechniek die meerdere gerandomiseerde beslisbomen bouwt en hun outputs combineert om een continue voorspelling te produceren. In plaats van te vertrouwen op één model, worden voorspellingen van veel bomen geaggregeerd, meestal door het gemiddelde van hun outputs te nemen.

Random Forest Regression

Waarom meerdere bomen? Een enkele beslisboom neigt naar overfitting. Hij vangt ruis mee naast signalen, vooral bij rommelige data uit de echte wereld.

Bootstrap-aggregatie en kenmerkrandomisatie

De kracht van het Random Forest-regressiemodel komt voort uit hoe het op elke stap willekeur introduceert en vervolgens resultaten aggregeert om de variantie te verlagen. Laten we dit interne mechanisme bespreken. 

Bootstrap-aggregatie, of bagging, traint elke boom op een andere willekeurige subset van de data. Dit introduceert variatie tussen bomen en verkleint het risico op overfitting

Kenmerkrandomisatie voegt nog een laag diversiteit toe door bij elke splitsing een willekeurige subset van features te selecteren. Samen stabiliseren deze technieken de voorspellingen en verbeteren ze de generalisatie.

Bootstrap-steekproeven en kenmerkrandomisatie

Random Forest begint met bootstrap-steekproeven, ook bekend als bagging. Elke boom wordt getraind op een willekeurig getrokken subset van de oorspronkelijke dataset. Daardoor leren de bomen verschillende patronen in plaats van dezelfde structuur te herhalen.

Het introduceert ook kenmerkrandomisatie. Bij elke splitsing bekijkt het model slechts een willekeurige subset van de features, in plaats van alle beschikbare. Dit voorkomt dat een paar dominante features elke boom sturen. 

Samen creëren bagging en kenmerkrandomisatie een set ongecorreleerde bomen die verschillende fouten maken; gecombineerd heffen hun voorspellingen ruis op en verbetert de algehele nauwkeurigheid.

Bomen laten groeien en voorspellingen aggregeren

Elke boom in het bos groeit diep, vaak zonder snoei. Zo kan het model complexe patronen, interacties en niet-lineaire relaties in de data vastleggen. 

Deze individuele bomen kunnen overfitten, maar dat effect wordt verkleind wanneer Random Forest hun outputs aggregeert voor het eindresultaat.

De bias-variantieafweging

Random forest balanceert twee sleutelfactoren: de sterkte van individuele bomen en de diversiteit van het bos. 

Diepe bomen hebben lage bias omdat ze de trainingsdata nauwkeurig kunnen fitten. Tegelijkertijd verlaagt willekeur in datasteekproeven en featureselectie de correlatie tussen bomen. Door veel laag-bias, zwak gecorreleerde bomen te middelen, verlaagt het model de algehele variantie zonder de bias te verhogen.

Datapreprocessing en implementatieworkflow

Nu zetten we de concepten om in de praktijk en bekijken we technieken om ruwe data om te zetten in een werkend Random Forest-model.

Opschonen van data en feature-engineering

Datavoorbereiding voor Random Forest-modellen begint meestal met het afhandelen van categorische variabelen. 

  • Voor kleinere categorieën werkt one-hot encoding goed en betrouwbaar
  • Voor features met hoge cardinaliteit is target encoding vaak efficiënter, omdat het signalen op categoriëniveau vastlegt zonder de dimensionaliteit sterk te vergroten

Daarna komt ontbrekende data. De aanpak hangt af van de bibliotheek die je gebruikt. Sommige implementaties kunnen ontbrekende waarden direct tijdens splitsingen afhandelen, terwijl andere verwachten dat je ze invult. In de meeste gevallen is simpele imputatie met mediaan of modus voldoende. Omdat Random Forest niet leunt op strikte verdelingen, werken deze rechttoe-rechtaan methoden in de praktijk goed.

Uiteindelijk komt de grootste impact van feature-engineering. Zo introduceren lag-variabelen temporele afhankelijkheden, vangen rollende aggregaten lokale trends, en coderen gegroepeerde statistieken patronen op hoger niveau. Deze ontworpen features stellen het model in staat informatie beter te representeren en de voorspellende prestaties te verbeteren.

Voor een diepere blik raad ik aan mijn tutorial Feature Engineering in Machine Learning te lezen.

Baselines vaststellen en splitsstrategieën

Voordat je iets gaat tunen, is de eerste stap om de data correct te splitsen. 

Voor standaard tabellaire problemen betekent dat meestal dat je de dataset opsplitst in train-, validatie- en testsets zodat het model op de ene slice wordt getraind, op een andere wordt getuned en op een laatste onaangeroerde slice wordt geëvalueerd. 

Die scheiding is belangrijk omdat je zo een realistisch beeld krijgt van hoe het model zich op nieuwe data zal gedragen.

Train-Test Split vs Walk-Forward Validation

Voor tijdreeksen verandert de splitsstrategie. Willekeurige splits kunnen toekomstige informatie het verleden in laten lekken, wat de prestaties beter doet lijken dan ze werkelijk zijn.

Walk-forward-validatie voorkomt dat probleem door te trainen op een initiële tijdsvenster, te valideren op het volgende venster, en dan stap voor stap door te schuiven. Zo blijft de evaluatie in lijn met hoe het model in productie daadwerkelijk zou worden gebruikt.

De end-to-end Python-implementatie schrijven

De implementatie volgt een eenvoudige scikit-learn-flow: 

  1. Importeer het model
  2. Splits de data
  3. Fit de estimator
  4. Genereer voorspellingen
  5. Evalueer de output

Een typische setup ziet er in de praktijk zo uit:

from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, root_mean_squared_error
import matplotlib.pyplot as plt

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

model = RandomForestRegressor(random_state=42)
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

mae = mean_absolute_error(y_test, y_pred)
rmse = root_mean_squared_error(y_test, y_pred)

Zodra het model is getraind en geëvalueerd, is de volgende stap om voorspelde waarden te visualiseren tegenover de werkelijke waarden. 

Een scatterplot maakt het gemakkelijk om systematische bias te ontdekken, zoals voorspellingen die consequent te hoog of te laag uitvallen ten opzichte van het doel. Het helpt ook om heteroscedasticiteit te onthullen, waarbij voorspellingsfouten toenemen naarmate de doelwaarden groter worden.

Hyperparametertuning en evaluatie

Na het trainen van het model is de volgende stap het tunen van sleutelparameters en het evalueren van de prestaties. Dit zijn de populaire technieken:

Regressiemetrieken kiezen en interpreteren

Root mean squared error (RMSE), mean average error (MAE) en R² meten elk prestaties op een andere manier. 

  • RMSE bestraft grote fouten zwaarder omdat het de residuen kwadrateert. Dit is nuttig wanneer grote missers kostbaar zijn en geminimaliseerd moeten worden
  • MAE behandelt alle fouten gelijk, waardoor het een stabieler beeld geeft wanneer de data uitschieters bevat of wanneer een consistente gemiddelde fout belangrijker is dan incidentele pieken
  • meet hoeveel variantie in het doel het model verklaart; dat helpt de algehele fit te vergelijken, maar weerspiegelt niet direct de voorspellingsfout

Voorbij geaggregeerde metrieken geeft foutanalyse diepere inzichten. Residuen, gedefinieerd als het verschil tussen werkelijke en voorspelde waarden, moeten worden onderzocht over verschillende dataslices. 

Het plotten van residuen tegenover voorspelde waarden of werkelijke doelen helpt patronen te onthullen. Als fouten bijvoorbeeld toenemen naarmate de doelwaarde groeit, duidt dat op heteroscedasticiteit. Als voorspellingen consequent boven of onder de diagonaal vallen, wijst dat op systematische bias.

Fouten opsplitsen per featuregroep of doelbereik helpt ook om faalwijzen te identificeren. Het model kan bijvoorbeeld goed presteren op middenwaarden maar moeite hebben met extremen, of zich anders gedragen over segmenten van de data.

Out-of-bag (OOB)-evaluatie gebruiken

Random Forest biedt een ingebouwd validatiemechanisme via out-of-bag-steekproeven. Omdat elke boom is getraind op een bootstrapsteekproef, blijft een deel van de data buiten beschouwing en wordt niet gezien tijdens het trainen. Deze out-of-bag-samples kunnen worden gebruikt om het model te evalueren zonder een aparte validatieset te maken. Dit is wat de OOB-score vastlegt.

OOB evaluation

Toch is OOB-evaluatie niet altijd voldoende. Voor uiteindelijke modelvalidatie, zeker bij hoge inzet of wanneer datalekken een punt van zorg zijn, is een strikte hold-out-testset vereist. 

Belangrijke hyperparameters prioriteren voor tuning

In Random Forest zorgen de parameters max_features en n_estimators doorgaans voor de meest merkbare prestatieverschillen.

  • max_features bepaalt het maximale aantal features dat bij elke splitsing wordt beschouwd. Lagere waarden verhogen de willekeur en verlagen de correlatie tussen bomen, wat de generalisatie kan verbeteren. Hogere waarden maken bomen sterker maar gelijksoortiger, wat de variantie mogelijk verhoogt. 

  • n_estimators bepaalt het aantal bomen in het bos. Het verhogen ervan verbetert meestal de prestaties door voorspellingen te stabiliseren, maar verhoogt ook de rekentijd. Na een bepaald punt worden de winst marginaal, dus het is belangrijk dat plateau te identificeren.

Deze parameters moeten worden getuned met cross-validatie om modelcomplexiteit, trainingstijd en voorspellende prestaties in balans te brengen.

Feature-importance en uitlegbaarheid

Random Forest-modellen worden vaak gezien als black boxes, maar ze bieden meerdere manieren om te begrijpen hoe features de voorspellingen beïnvloeden. Laten we een paar belangrijke bekijken.

Op onzuiverheid gebaseerde importantie

Random Forest berekent feature-importance met Mean Decrease in Impurity (MDI). Elke keer dat een feature wordt gebruikt om een knoop te splitsen, meet het model hoeveel die splitsing de onzuiverheid vermindert, zoals variantie bij regressietaken. Deze verminderingen worden opgeteld over alle bomen en leveren een score op die weerspiegelt hoeveel een feature bijdraagt aan betere voorspellingen.

Hoewel deze methode snel is en in het model is ingebouwd, zijn er bekende beperkingen. MDI bevoordeelt doorgaans continue features of categorische features met veel unieke waarden. Deze features creëren meer potentiële splitsingspunten, wat hun importantiescores kan opblazen, ook als ze niet werkelijk voorspellender zijn.

Permutatie-importantie

Permutatie-importantie meet hoe de prestaties veranderen wanneer de waarden van een feature willekeurig worden door elkaar gehusseld in een hold-out-dataset. Als het husselen van een feature de prestaties aanzienlijk verslechtert, is die feature belangrijk. Als de impact klein is, heeft de feature waarschijnlijk beperkte voorspellende waarde.

Deze aanpak weerspiegelt het echte modelgedrag en is daardoor betrouwbaarder voor analyse. 

Gecorreleerde features brengen echter complexiteit mee. Wanneer twee features vergelijkbare informatie bevatten, heeft het husselen van één mogelijk geen grote impact op de prestaties omdat de andere het signaal nog levert. Daardoor kan importantie over gecorreleerde features worden verdeeld, wat zorgvuldige interpretatie vergt.

SHAP-waarde

SHAP-waarden (Shapley Additive Explanations) leggen uit hoeveel elke feature bijdraagt aan een individuele voorspelling. Het kent elke feature een waarde toe die weergeeft hoeveel deze de voorspelling boven of onder een basislijn duwde. 

Deze methode wordt vaak gebruikt om modelbeslissingen uit te leggen en vertrouwen op te bouwen. Voor een nadere blik, lees onze tutorial SHAP-waarden in machine learning.

Beperkingen en veelvoorkomende faalgevallen

Random Forest-regressie is in veel scenario’s betrouwbaar, maar kent duidelijke beperkingen. Door die te begrijpen, weet je wanneer je het moet gebruiken en wanneer je beter voor een andere aanpak kiest.

Extrapolatielimieten en randgevallen

Random Forest kan niet extrapoleren buiten het bereik van de trainingsdata. 

Elke boom doet voorspellingen op basis van splitsingen die tijdens het trainen zijn gezien, dus de uiteindelijke output wordt altijd begrensd door de minimale en maximale doelwaarden in de dataset. Als het model alleen doelen tussen 10 en 100 heeft gezien, kan het geen 120 voorspellen, hoe sterk het inputsignaal ook is. Dit wordt een probleem in scenario’s zoals groeiprognoses of trendgedreven systemen. 

Het model heeft ook moeite met extreem hoog-dimensionale, sparse data, zoals tekstrepresentaties of one-hot-encoded vectoren met duizenden kolommen. In zulke gevallen worden bomen inefficiënt en missen ze betekenisvolle splitsingen. Praktische work-arounds zijn 

Afwegingen rond uitlegbaarheid

Een enkele boom biedt een duidelijk pad van input naar voorspelling, wat uitleg eenvoudig maakt. Een bos daarentegen aggregeert honderden bomen, waardoor individuele beslissingen moeilijker te herleiden zijn.

In sterk gereguleerde omgevingen is deze afweging belangrijk. Als verklaringen simpel en direct herleidbaar moeten zijn, is een enkele beslisboom of lineair model mogelijk geschikter. Als prestaties prioriteit hebben en uitleg kan worden ondersteund met methoden als feature-importance of SHAP, blijft Random Forest een sterke optie.

Beperkingen in compute, geheugen en latentie

Random Forest schaalt lineair met het aantal bomen en de grootte van de data. Naarmate datasets groeien, nemen trainingstijd en geheugengebruik toe omdat elke boom moet worden opgebouwd en opgeslagen. Grote bossen kunnen ook de inferentie vertragen, omdat voorspellingen het aggregeren van outputs van alle bomen vereisen.

In productiesystemen met strikte latentie- of kostenbeperkingen kan dit een bottleneck worden. Het aantal bomen verminderen, de diepte beperken of het aantal features per splitsing begrenzen kan helpen het verbruik te beheersen. Deze aanpassingen ruilen wat nauwkeurigheid in voor snellere training en voorspeltijden.

Random Forest-regressie vs. alternatieven: hoe kies je?

Misschien vraag je je af of Random Forest-regressie het juiste algoritme is voor jouw usecase, of welk alternatief je zou moeten overwegen.

Een raamwerk voor modelvergelijking opzetten

Usecases verschillen, maar één aanpak helpt altijd: vergelijk de prestaties van verschillende modellen (zoals lineaire regressie, support vector-regressie, gradient boosting, enz.) op dezelfde dataset naast de Random Forest Regressor. 

Dat betekent dat je exact dezelfde train-, validatie- en testpartities voor elk model gebruikt en ze vervolgens beoordeelt onder dezelfde foutcriteria en zakelijke aannames.

Random forest-regressie vs. lineaire regressie en support vector-regressie

Random Forest en lineaire regressie lossen heel verschillende problemen op. Lineaire regressie werkt het best wanneer de relatie tussen inputs en doel grotendeels lineair is en de coëfficiënten makkelijk uit te leggen moeten zijn. Het is ook de betere keuze wanneer strikte extrapolatie belangrijk is, omdat het voorbij het geobserveerde doelbereik kan uitstrekken. 

Random Forest is daarentegen beter in niet-lineaire patronen, feature-interacties en grillige grenzen. Dat maakt het een sterker modelinstrument voor complexe systemen in de echte wereld, maar een zwakkere optie voor trendgedreven forecasting.

Support vector-regressie (SVR) zit in een andere hoek. Het kan goed presteren op kleinere datasets, maar is veel gevoeliger voor featureschaling en heeft doorgaans zorgvuldiger tuning nodig. Random Forest is niet afhankelijk van gestandaardiseerde inputs, wat het makkelijker maakt in typische tabellaire workflows. 

SVR kan een sterke optie zijn wanneer de dataset compact is en de feature-ruimte beperkt, maar wordt lastiger te onderhouden naarmate datavolume, featurecomplexiteit of operationele druk toeneemt.

Random forest-regressie vs. gradient boosting en enkele beslisbomen

Random Forest bouwt bomen onafhankelijk en gemiddeld hun outputs. Gradient boosting bouwt bomen sequentieel, waarbij elke nieuwe boom de fouten van de vorige corrigeert.

Gradient-boostingmethoden, zoals XGBoost, behalen meestal hogere nauwkeurigheidsplafonds, vooral op gestructureerde tabellaire data. Ze vergen echter meer tuning en zijn gevoeliger voor hyperparameters. Trainen kan ook trager zijn door de sequentiële aard van boosting. Random Forest is makkelijker te trainen, stabieler out-of-the-box en minder gevoelig voor configuratie.

Vergeleken met een enkele beslisboom is Random Forest veel stabieler en nauwkeuriger. Een enkele boom is makkelijk te interpreteren omdat je elk beslispad kunt volgen, maar hij is zeer gevoelig voor kleine dataveranderingen. Random Forest vermindert deze instabiliteit door over veel bomen te middelen, maar verliest directe uitlegbaarheid.

Samenvatting modelvergelijking

Model

Kan niet-lineariteit aan

Extrapolatie

Uitlegbaarheid

Tuningcomplexiteit

Trainingskosten

Random Forest-regressie

Sterk

Zwak

Middel

Gemiddeld

Gemiddeld

Lineaire regressie

Zwak tot gemiddeld

Sterk

Hoog

Laag

Laag

Support vector-regressie

Sterk

Zwak tot gemiddeld

Laag

Hoog

Hoog (op grote data)

Gradient Boosting (XGBoost)

Zeer sterk

Zwak

Laag tot middel

Hoog

Hoog

Enkele beslisboom

Gemiddeld

Zwak

Hoog

Laag

Laag

Tot slot

Random Forest-regressie werkt het best als standaardmodel wanneer data rommelig is, relaties niet-lineair zijn en je een sterke basislijn nodig hebt zonder zware preprocessing. Het kan met gemengde featuretypen overweg, legt interacties vast en levert stabiele prestaties met minimale setup.

De typische workflow volgt een duidelijke opbouw. Begin met minimale preprocessing en focus op een correcte datastructuur. Bouw een baseline met een standaard Random Forest-model en evalueer die met consistente metrieken. Tune daarna sleutelhyperparameters zoals het aantal bomen en de strategie voor featuresampling om de prestaties te verbeteren. 

Zodra het model stabiliseert, ga je dieper evalueren door residuen te analyseren, fouten te segmenteren en waar nodig SHAP te gebruiken om voorspellingen uit te leggen. 

Als volgende stap, voor een diepgaand begrip en hands-on oefening, bekijk deze course over Machine Learning met boomgebaseerde modellen in Python.

Veelgestelde vragen over Random Forest-regressie

Wat zijn de beperkingen van het Random Forest-model?

Random Forest kan niet extrapoleren buiten het bereik van de trainingsdata en kan moeite hebben met zeer hoog-dimensionale, sparse datasets. Het is ook minder uitlegbaar dan een enkele beslisboom en kan rekenkundig duur worden naarmate het aantal bomen groeit.

Hoe weet ik of mijn Random Forest-model overfit?

Vergelijk trainings- en validatieprestaties. Als de trainingsfout laag is maar de validatiefout aanzienlijk hoger, dan overfit het model. Je kunt ook controleren of het vergroten van de boomdiepte de validatiemetrieken niet verbetert.

Is XGBoost of Random Forest beter?

XGBoost behaalt meestal een hogere nauwkeurigheid omdat het bomen sequentieel bouwt en fouten op elke stap corrigeert. Het werkt het best wanneer je tijd kunt investeren in hyperparametertuning. Random Forest daarentegen bouwt bomen onafhankelijk en gemiddelde hun voorspellingen. Het is stabieler, vereist minder tuning en presteert goed als baseline.

Kan Random Forest met tijdreeksdata overweg?

Niet direct. Je moet tijdreeksen omzetten naar tabelformaat met lag-features, rollende statistieken of venstergebaseerde transformaties voordat je gaat trainen.


Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana is een freelance techschrijver met een vierjarige opleiding in Computer Science. Schrijven over uiteenlopende onderwerpen, waaronder data science, cloud computing, development, programmeren, security en veel meer, gaat haar vanzelf af. Ze houdt van klassieke literatuur en het ontdekken van nieuwe bestemmingen.

Onderwerpen

Topcursussen Machine Learning

Leerpad

Wetenschapper op het gebied van machine learning in Python

85 Hr
Ontdek machine learning met Python en werk eraan om een machine learning-wetenschapper te worden. Ontdek begeleid, onbegeleid en diepgaand leren.
Bekijk detailsRight Arrow
Begin met de cursus
Meer zienRight Arrow