Gradient Boosting Algoritmes: efficiënt zwakke voorspellers combineren

Gradient Boosting Algorithms

De media gooien algoritmes vaak op één Big Data-hoop. En dat terwijl er zoveel soorten en maten van bestaan. Support Vector Machines, Random Forests… en dan hebben we het nog niet eens over alle overkoepelende machine learning technieken. Het gekke is: ze zijn allemaal populair. Net zoals het Gradient Boosting Algoritme.

Het terugdringen van variance en bias

Machine learning technieken worden ingezet om de waarde van een zogenaamde target variable te voorspellen. De waarde van de target variable, dus de waarde van de voorspelling, komt echter niet altijd overeen met de daadwerkelijke waarde. Deze daadwerkelijke waarde wordt vaak na enkele maanden of jaren duidelijk. De hoofdoorzaken van dit verschil kunnen noise, variance of bias zijn. Variance en bias kun je echter minimaliseren door middel van een ensemble.

Eén tegen 100

Een ensemble is een collectie van voorspellers, oftewel target variables. Denk hierbij aan het gemiddelde van 100 voorspellingen over dezelfde waarde. 100 voorspellingen samen presteren tenslotte beter dan slechts één voorspeller. Zo’n ensemble voegt dus veel waarde toe. De twee ensembletechnieken zijn bagging en boosting. Wij gaan alleen in op de laatste techniek, omdat deze van toepassing is op het Gradient Boosting Algoritme.

Overfitting

Gedurende het boosting-proces worden de voorspellers sequentieel, dus na elkaar, gevormd. De volgorde waarin voorspellers leren van de fouten van eerdere voorspellers, is het belangrijkst. De meest recente voorspellingen baseren zich continu op de errors van eerdere voorspellingen. Het gevolg hiervan is dat het minder lang duurt om dichterbij de daadwerkelijke waarde te komen. De gevonden voorspellingen (patronen) gebruikt men continu om het model sterker en sterker te maken. Tegen de tijd dat er geen enkel patroon meer mogelijk is, loop je het risico op overfitting. In dit geval volgt de data het voorspelmodel te nauw. Het gevolg hiervan is dat later toegevoegde data niet meer in het model ‘passen’. Hierdoor kun je geen betrouwbare voorspelling over de werkelijkheid geven.

Het Gradient Boosting Algoritme

Het GBA (Gradient Boosting Algoritme) is een populair boosting-algoritme. De meest gebruikelijke vorm van dit algoritme optimaliseert de Mean Squared Error (MSE). Dit is het gemiddelde verschil tussen de voorspelde targets en de daadwerkelijke waardes. De voorspelde targets zijn afkomstig uit een set observaties (een dataset), zoals een trainingset of een validatieset. Dit model combineert de zwakkere voorspelmodellen, oftewel verschillende zwakke voorspellingen, om een sterk model te creëren. Bij een sterk voorspelmodel komt de gemiddelde voorspelling overeen met de daadwerkelijke waarde. Hoe meer zwakke voorspellingen worden toegevoegd aan dit algoritme, des te lager de Mean Squared Error (MSE) dus zal zijn.

Absolute en relatieve optimalisatie

Het optimaliseren van de MSE in een Gradient Boosting Model zorgt ervoor dat outliers, extreem afwijkende waarden, worden opgespoord. Aangezien het gemiddelde verschil tussen alle voorspelde waarden en de daadwerkelijke waarde steeds duidelijker wordt, vallen outliers meer op. Toch kan het zo zijn dat het steeds vermenigvuldigen van deze verschillen niet tot het ontdekken van meer outliers leidt. Dan is het beter om de Mean Absolute Error (MAE) te optimaliseren in plaats van de Mean Squared Error (MSE). De Mean Absolute Error is het gemiddelde absolute verschil tussen de daadwerkelijke waarden en de voorspelde waarden, en dus niet het relatieve verschil.

Van zwak naar sterk

Kortom, het Gradient Boosting Algoritme combineert meerdere, zwakkere modellen. De Decision Tree is een goed voorbeeld van een gewild, zwak model. Het Gradient Boosting Algoritme wilt het liefst zo veel mogelijk modellen, want dan beschikt het algoritme over meer input waarvan geleerd kan worden. Deze simpele modellen zijn ‘weak learners’, die continu van elkaar leren. Dit leidt ertoe dat niet alleen de gemiddelde voorspelling veel sterker wordt, maar ook dat de zwakkere modellen zichzelf verbeteren. Twee vliegen in één klap, dus.

Want to know more?

Ben je benieuwd naar wat wij nog meer in petto hebben als het gaat om data science? Neem dan contact op met Jesse Luk via jesse@tottadatalab.nl. Je kunt natuurlijk ook even bellen naar 020 514 1328.

Posted on 7 januari 2019

Share the Story

Back to Top