De Willekeur van het Bos
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, daarom 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:
- Het samplen van de data voor elke boom;
- Het samplen van de features bij elke beslissingsknoop van elke boom.
Data samplen
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 te samplen voor elke boom.
Standaard komt de grootte van de dataset van elke boom overeen met de grootte van de originele dataset. Samplen met teruglegging kan worden gezien 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.
Elke boom wordt getraind op een ander deelverzameling van de data, wat al helpt om de bomen divers te maken. Om nog meer willekeur toe te voegen en de training te versnellen, kunnen we ook het aantal features beperken dat elke boom overweegt bij het maken van splitsingen.
Steekproeven van de Kenmerken
In een standaard beslissingsboom worden bij elke knoop alle beschikbare kenmerken onderzocht om de beste splitsing te vinden – meestal door het berekenen van maatstaven 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 helpt om de bomen diverser te maken. Een gangbare 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; bij 10.000 kenmerken worden er ongeveer 100 geselecteerd.
De kenmerken worden zonder teruglegging getrokken, zodat hetzelfde kenmerk niet meer dan eenmaal bij een enkele knoop voorkomt. Het aantal te overwegen kenmerken kan worden aangepast afhankelijk van het gebruiksscenario.
Het aantal kenmerken dat bij elke beslissingsknoop wordt overwogen, kan worden ingesteld met de parameter max_features in de implementatie van scikit-learn. Hier volgen enkele veelgebruikte opties:
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 het logaritme met grondtal 2 van het totale aantal kenmerken, wat nog meer willekeur toevoegt;max_features=0.1: gebruikt 10% van de kenmerken, waarbij de waarde als proportie wordt geïnterpreteerd.
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).
Samenvattend is een Random Forest zo ontworpen dat elke boom wordt getraind op een andere steekproef van de data, en dat elke beslissingsknoop binnen die bomen een andere willekeurige subset van kenmerken overweegt. Deze ingebouwde willekeurigheid leidt tot een diverse verzameling bomen, wat uiteindelijk de algehele prestaties van het model verbetert.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain why randomness is important in Random Forests?
How does sampling with replacement differ from sampling without replacement?
What is the effect of changing the max_features parameter?
Awesome!
Completion rate improved to 4.17
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, daarom 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:
- Het samplen van de data voor elke boom;
- Het samplen van de features bij elke beslissingsknoop van elke boom.
Data samplen
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 te samplen voor elke boom.
Standaard komt de grootte van de dataset van elke boom overeen met de grootte van de originele dataset. Samplen met teruglegging kan worden gezien 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.
Elke boom wordt getraind op een ander deelverzameling van de data, wat al helpt om de bomen divers te maken. Om nog meer willekeur toe te voegen en de training te versnellen, kunnen we ook het aantal features beperken dat elke boom overweegt bij het maken van splitsingen.
Steekproeven van de Kenmerken
In een standaard beslissingsboom worden bij elke knoop alle beschikbare kenmerken onderzocht om de beste splitsing te vinden – meestal door het berekenen van maatstaven 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 helpt om de bomen diverser te maken. Een gangbare 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; bij 10.000 kenmerken worden er ongeveer 100 geselecteerd.
De kenmerken worden zonder teruglegging getrokken, zodat hetzelfde kenmerk niet meer dan eenmaal bij een enkele knoop voorkomt. Het aantal te overwegen kenmerken kan worden aangepast afhankelijk van het gebruiksscenario.
Het aantal kenmerken dat bij elke beslissingsknoop wordt overwogen, kan worden ingesteld met de parameter max_features in de implementatie van scikit-learn. Hier volgen enkele veelgebruikte opties:
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 het logaritme met grondtal 2 van het totale aantal kenmerken, wat nog meer willekeur toevoegt;max_features=0.1: gebruikt 10% van de kenmerken, waarbij de waarde als proportie wordt geïnterpreteerd.
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).
Samenvattend is een Random Forest zo ontworpen dat elke boom wordt getraind op een andere steekproef van de data, en dat elke beslissingsknoop binnen die bomen een andere willekeurige subset van kenmerken overweegt. Deze ingebouwde willekeurigheid leidt tot een diverse verzameling bomen, wat uiteindelijk de algehele prestaties van het model verbetert.
Bedankt voor je feedback!