Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer De Willekeur van het Bos | Random Forest
Classificatie met Python

De Willekeur van het Bos

Veeg om het menu te tonen

Random Forest bouwt een groot aantal Decision Trees - meestal rond de 100 of zelfs meer. Het creëren van zoveel verschillende bomen is niet eenvoudig door alleen instellingen aan te passen, dus wordt willekeur geïntroduceerd om te helpen. Gelukkig zijn Decision Trees zeer gevoelig voor kleine veranderingen in de data en instellingen, wat vanzelf leidt tot een grote variatie aan bomen in het bos.

Er zijn twee bronnen van willekeur in een Random Forest:

  1. Het samplen van de data voor elke boom;
  2. Het samplen van de features bij elke beslissingsknoop van elke boom.

Het samplen van de data

Om een andere trainingsset voor elke Decision Tree in een bos te creëren, gebruiken we de bootstrap-methode (ook wel bagging genoemd). Het idee is om, met teruglegging, een dataset van dezelfde grootte voor elke boom te samplen.

Standaard komt de grootte van de dataset van elke boom overeen met de grootte van de originele dataset. Samplen met teruglegging kun je zien als het willekeurig selecteren van een datapunt uit de trainingsset - vergelijkbaar met het trekken van een kaart uit een stapel. In tegenstelling tot gewoon kaarttrekken wordt elk geselecteerd datapunt niet verwijderd, zodat hetzelfde datapunt meerdere keren gekozen kan worden.

RandomForest

Elke boom wordt getraind op een ander deel van de data, wat de bomen al divers maakt. Om nog meer willekeur toe te voegen en de training te versnellen, kunnen we ook het aantal kenmerken beperken dat elke boom overweegt bij het maken van splitsingen.

Kenmerken selecteren

In een standaard beslissingsboom onderzoekt elke knoop alle beschikbare kenmerken om de beste splitsing te vinden – meestal door het berekenen van statistieken zoals Gini-onzuiverheid. Dit proces is computationeel intensief.

In een Random Forest wordt bij elke knoop slechts een willekeurige subset van kenmerken overwogen. Dit versnelt de training en voegt willekeur toe, wat de bomen diverser maakt. Een veelgebruikte methode is het gebruik van de vierkantswortel van het totale aantal kenmerken. Bijvoorbeeld, als er 9 kenmerken zijn, kunnen er bij elke knoop willekeurig 3 worden gekozen; als er 10.000 kenmerken zijn, worden er ongeveer 100 geselecteerd.

De kenmerken worden zonder teruglegging geselecteerd, zodat hetzelfde kenmerk niet meer dan één keer bij een knoop voorkomt. Het aantal te overwegen kenmerken kan worden aangepast afhankelijk van het gebruik.

Kenmerken

Het aantal kenmerken dat bij elke beslissingsknoop wordt overwogen, kan worden geregeld met de parameter max_features in de implementatie van scikit-learn. Enkele populaire opties zijn:

  • max_features='sqrt': gebruikt de vierkantswortel van het totale aantal kenmerken. Dit is een veelgebruikte standaardinstelling die nauwkeurigheid en efficiëntie in balans brengt;
  • max_features='log2': gebruikt de logaritme met grondtal 2 van het totale aantal kenmerken, wat zorgt voor nog meer willekeur;
  • max_features=0.1: gebruikt 10% van de kenmerken, waarbij de waarde als een proportie wordt behandeld.
Note
Opmerking

Het is ook mogelijk om max_features in te stellen op elke proportie tussen 0 en 1 (bijvoorbeeld max_features=0.1 gebruikt 10% van de kenmerken).

Samengevat is een Random Forest zo ontworpen dat elke boom wordt getraind op een andere steekproef van de data, en elke beslissingsknoop binnen die bomen een andere willekeurige subset van kenmerken overweegt. Deze ingebouwde willekeur resulteert in een diverse verzameling bomen, wat uiteindelijk de algehele prestaties van het model verbetert.

question mark

Wat helpt ons om de willekeur in een Random Forest te bereiken? Kies alle toepasselijke opties.

Selecteer alle juiste antwoorden

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 4. Hoofdstuk 2
some-alt