Een implementatie van boosting in Python
Een van de beste manieren om boosting te begrijpen, is door het in de praktijk te laten zien. Hiervoor gebruiken we deze Kaggle-dataset Almond Types Classification, met drie soorten amandelen: MAMRA, SANORA en REGULAR, en hun unieke fysieke kenmerken zoals oppervlakte, omtrek en rondheid.
De features van elk amandelmonster zijn geëxtraheerd via geavanceerde beeldverwerkingstechnieken. Null-waarden in de dataset vertegenwoordigen gevallen waarin de oriëntatie van de amandel—of deze rechtop werd gehouden, op zijn zij lag of op de rug—de nauwkeurigheid van het feature-extractieproces beïnvloedde.
Laten we deze dataset nu gebruiken voor een classificatietaak. We gebruiken het AdaBoost-algoritme, dat, zoals we al zeiden, de modelprestaties verbetert door zwakke leerders te combineren tot één sterke.
1. Bibliotheken importeren
We beginnen met het importeren van de benodigde bibliotheken en het laden van de amandeldataset. Vervolgens splitsen we de features en targetvariabelen.
import pandas as pd
almonds = pd.read_csv('Almond.csv', index_col=0)
X = almonds.drop('Type', axis=1)
y = almonds['Type']
2. Omgaan met ontbrekende data
Vervolgens schonen we de dataset op door ontbrekende waarden op te vullen met de KNN-imputer. Zo zorgen we voor een complete dataset voor ons model.
from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=5)
X_imputed = imputer.fit_transform(X)
3. De data splitsen voor training en testen
We splitsen de data in trainings- en testsets, zodat we kunnen evalueren hoe goed ons model met nieuwe data omgaat.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_imputed, y, test_size=0.2, random_state=42)
4. Een decision tree-classifier trainen
We trainen hier een eenvoudig decision tree-model, wat ons een baseline-nauwkeurigheid geeft voordat we de prestaties gaan boosten.
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
tree = DecisionTreeClassifier(max_depth=1, random_state=42)
tree.fit(X_train, y_train)
tree_accuracy = accuracy_score(y_test, tree.predict(X_test))
5. Prestaties verbeteren met AdaBoost
We gebruiken vervolgens AdaBoost om de prestaties van onze decision tree te verbeteren door te focussen op de fouten en de nauwkeurigheid te verhogen.
from sklearn.ensemble import AdaBoostClassifier
ada = AdaBoostClassifier(base_estimator=tree, n_estimators=100, learning_rate=1.0, random_state=42)
ada.fit(X_train, y_train)
ada_accuracy = accuracy_score(y_test, ada.predict(X_test))
# Print the accuracies
print(f'Accuracy of the weak learner (Decision Tree): {tree_accuracy * 100:.2f}%')
print(f'Accuracy of AdaBoost model: {ada_accuracy * 100:.2f}%')
6. Eindresultaat
Tot slot vergelijken we de resultaten en zien we hoe AdaBoost de nauwkeurigheid aanzienlijk verbetert.
Accuracy of the weak learner (Decision Tree): 43.14%
Accuracy of AdaBoost model: 61.50%
Wat is de conclusie? De resultaten illustreren de kracht van ensemble learning via AdaBoost. Hier was de zwakke leerder een decision tree met een maximale diepte van slechts één, die een bescheiden nauwkeurigheid van ongeveer 43% haalde. Gezien het feit dat er slechts drie soorten amandelen waren, is 43% niet veel hoger dan het gemiddelde bij raden. Maar toen deze zwakke leerder werd gebruikt als basisestimator in een AdaBoost-model met 100 iteraties, steeg de nauwkeurigheid naar 62%.
Even een stap terug: hoewel AdaBoost op onze Amandel-dataset een hogere nauwkeurigheid liet zien, is het niet altijd de beste keuze. Er is een risico op overfitting, vooral bij kleinere datasets zoals deze, waarbij het model te complex kan worden. In de praktijk kunnen eenvoudigere classificatietechnieken voor bepaalde taken net zo goed of zelfs beter presteren. We gebruikten hier AdaBoost om het concept te illustreren, maar het is belangrijk om je af te vragen of je die hogere complexiteit echt wilt.
Conclusie
Boosting is een belangrijke vooruitgang binnen machine learning en laat de kracht van ensemblemethoden zien om de voorspellende nauwkeurigheid te vergroten. Zoals we hebben gezien, werken boosting-algoritmen zoals AdaBoost, Gradient Boosting en XGBoost volgens een fundamenteel principe: meerdere zwakke modellen combineren tot één, effectievere voorspeller.
Het is echter belangrijk om te onthouden dat boosting slechts één hulpmiddel is binnen de machine learning-gereedschapskist. De effectiviteit kan variëren, afhankelijk van het specifieke probleem. Zoals bij elke machine learning-techniek is het begrijpen wanneer en hoe je boosting toepast cruciaal om het volledige potentieel te benutten.
Wil je je begrip van boosting en andere machine learning-concepten verdiepen? Bekijk dan DataCamp's uitgebreide carrièreroute Machine Learning for Everyone. Wie zich verder wil specialiseren, kan terecht bij de carrièreroute Machine Learning Scientist with Python, met diepgaande training in geavanceerde technieken en praktische toepassingen.

Vinod Chugani begon zijn carrière in Tokio als JPMorgans jongste Head van de Hedge Fund Sales Desk en vestigde later een individueel verkooprecord bij Lehman Brothers, bouwde daarna een elektronicadistributiebedrijf in 30 landen uit tot voorbij SG$100 miljoen omzet en maakte vervolgens de overstap naar data. Als afgestudeerde Economie aan Duke en alumnus van de NYC Data Science Academy was hij een van de drie beursontvangers uit meer dan 100 aanmeldingen voor Hugo Bowne-Andersons Building AI Applications-cursus op Maven. Tegenwoordig schrijft hij voor DataCamp, KDnuggets, Machine Learning Mastery en Statology over onderwerpen van statistiek tot agentische AI, en coacht hij dataprofessionals bij de NYC Data Science Academy met meer dan 1.000 één-op-één-sessies op zijn naam.
Veelgestelde vragen
Wat is boosting in machine learning?
Boosting is een ensemble learning-techniek die wordt gebruikt om de nauwkeurigheid van voorspellende modellen te verbeteren. Het combineert meerdere zwakke leerders—modellen die het slechts iets beter doen dan willekeurig gokken—tot één sterke leerder, wat de algehele modelprestatie aanzienlijk verbetert.
Hoe verschilt boosting van bagging?
Boosting en bagging zijn beide ensembletechnieken die meerdere modellen combineren om voorspellingen te verbeteren, maar ze werken anders. Boosting traint modellen sequentieel, waarbij elk nieuw model zich richt op de fouten van de vorige om bias te verminderen en de nauwkeurigheid te verhogen. Bagging daarentegen traint modellen parallel op verschillende subsets van de data en middelt de uitkomsten om variantie te verminderen en stabiliteit te vergroten. Terwijl boosting gevoeliger is voor uitschieters en ruis, is bagging daar robuuster tegen dankzij het middelen.
Kan boosting worden gebruikt voor zowel classificatie- als regressieproblemen?
Ja, boostingtechnieken kunnen worden aangepast voor zowel classificatie als regressie. Hoewel AdaBoost vaker wordt gebruikt voor classificatieproblemen, kunnen andere varianten zoals Gradient Boosting ook effectief worden ingezet voor regressie.
Hoe kies je het aantal boosting-iteraties?
Het aantal iteraties, ofwel het aantal zwakke leerders, in een boosting-algoritme hangt doorgaans af van de specifieke dataset en de complexiteit van het probleem. Het kan worden bepaald met cross-validatie of vergelijkbare technieken om een balans te vinden tussen underfitting en overfitting.
Hoe verschilt AdaBoost van andere boostingtechnieken, zoals Gradient Boosting?
AdaBoost verhoogt de gewichten van verkeerd geclassificeerde gevallen om daaropvolgende modellen op deze uitdagende voorbeelden te laten focussen. Gradient Boost daarentegen past nieuwe leerders aan op de residuele fouten van eerdere modellen.
Wat zijn de belangrijkste voordelen van het gebruik van AdaBoost?
De belangrijkste voordelen van AdaBoost zijn de eenvoud, effectiviteit en het feit dat er geen voorkennis over de zwakke leerder nodig is. Het is ook erg flexibel, kan met elk leeralgoritme worden gecombineerd en is vaak zeer succesvol bij classificaties waar andere methoden moeite mee hebben.
Wat zijn enkele noemenswaardige alternatieven voor AdaBoost om de prestaties van machinelearning-modellen te boosten?
Enkele noemenswaardige alternatieven voor AdaBoost zijn Gradient Boosting, XGBoost, CatBoost, LightGBM en HistGradientBoost.
Welke soorten ensemble learning-methoden zijn er naast boosting?
Veelvoorkomende vormen van ensemble learning, naast boosting, zijn onder meer bagging en stacking, die elk verschillende strategieën gebruiken om modellen te integreren en zo de voorspellende kracht te maximaliseren.

Recente ontwikkelingen in machine learning hebben nieuwe manieren geïntroduceerd om complexe problemen aan te pakken. Boosting is een techniek die steeds weer veelbelovend blijkt. Het verandert onze aanpak van datamodellering door meerdere algoritmen te gebruiken om de prestaties te verbeteren. Naarmate het concept van boosting zich blijft ontwikkelen, zijn nieuwere varianten zoals Gradient Boosting en XGBoost opgekomen, die de grenzen van snelheid en nauwkeurigheid verleggen.
Maak je geen zorgen als je het gevoel hebt dat er veel te leren valt op het gebied van voorspellend modelleren. Probeer onze carrièreroutes Associate Data Scientist in Python of Data Scientist in Python, en bekijk ook onze tutorial Explore Ensemble Learning Techniques om door te leren.
Boosting in machine learning
Boosting is een krachtige ensemble learning-methode in machine learning, specifiek ontworpen om de nauwkeurigheid van voorspellende modellen te verbeteren door meerdere zwakke leerders—modellen die het slechts iets beter doen dan willekeurig gokken—te combineren tot één sterke leerder.
De essentie van boosting ligt in het iteratieve proces waarbij elke zwakke leerder wordt getraind om de fouten van zijn voorganger te corrigeren, waardoor de algehele modelprestatie geleidelijk verbetert. Door te focussen op de fouten van eerdere modellen, vormt boosting van een verzameling zwakke leerders een nauwkeuriger model.
Hoe boosting werkt
Boosting transformeert zwakke leerders in één verenigde, sterke leerder via een systematisch proces dat zich richt op het verminderen van fouten in sequentiële modeltraining. De stappen zijn onder meer:
Deze methode minimaliseert fouten effectief door intensiever te focussen op moeilijke gevallen in de trainingsdata, wat resulteert in sterke voorspellende prestaties.
Typen boosting-algoritmen
Laten we eens kijken naar enkele van de bekendste boosting-algoritmen.
AdaBoost (Adaptive Boosting)
AdaBoost is een van de eerste boosting-algoritmen. Het richt zich op het herwegen van de trainingsvoorbeelden telkens wanneer er een leerder wordt toegevoegd, met extra nadruk op verkeerd geclassificeerde gevallen. AdaBoost is met name effectief voor binaire classificatieproblemen. Lees onze tutorial AdaBoost Classifier in Python voor meer informatie.
Gradient Boosting
Gradient boosting bouwt modellen sequentieel op en corrigeert onderweg fouten. Het gebruikt een gradient-descentalgoritme om het verlies te minimaliseren bij het toevoegen van nieuwe modellen. Deze methode is flexibel en kan worden gebruikt voor zowel regressie- als classificatieproblemen. Onze tutorial A Guide to The Gradient Boosting Algorithm beschrijft dit proces in detail.
XGBoost (Extreme Gradient Boosting)
XGBoost is een geoptimaliseerde gedistribueerde gradient boosting-bibliotheek en de go-to methode voor veel competitiewinnaars op Kaggle. Het is ontworpen om zeer efficiënt, flexibel en draagbaar te zijn. Het implementeert machinelearning-algoritmen binnen het Gradient Boosting-framework en biedt een schaalbare en nauwkeurige oplossing voor veel praktische dataproblemen. Voor een meer diepgaande studie kun je onze tutorial Using XGBoost in Python doornemen en onze speciale cursus volgen: Extreme Gradient Boosting with XGBoost.
Ensemblemethoden
Boosting behoort tot de grotere groep van ensemblemethoden. Ensemblemethoden zijn een benadering in machine learning waarbij meerdere modellen worden gecombineerd om nauwkeurigere voorspellingen te doen dan een enkel model meestal alleen kan bereiken. Deze technieken werken door de diversiteit van verschillende modellen te benutten, elk met zijn eigen sterke en zwakke punten, om tot een gezamenlijke besluitvorming te komen.
Verschillende soorten ensemblemethoden
Boosting is een prominente ensemble learning-techniek, maar het is slechts één van de methoden die de voorspellende kracht van modellen vergroten. Laten we naar een paar andere kijken.
Boosting vs. bagging
Boosting wordt vaak vergeleken met vooral bagging. Hoewel ze in sommige opzichten overeenkomen, zijn er zeker grote verschillen. Hieronder staat een tabel met een vergelijking tussen boosting en bagging:
Als je meer wilt leren over bagging, lees dan onze tutorial What is Bagging in Machine Learning?, die sklearn gebruikt.