AI 101
Wat is een beslissingsboom?

Wat is een beslissingsboom?
Een beslissingsboom is een nuttige machine learning-algoritme dat zowel voor regressie- als classificatietaken wordt gebruikt. De naam “beslissingsboom” komt voort uit het feit dat het algoritme de dataset blijft opsplitsen in kleinere en kleinere porties totdat de gegevens zijn opgesplitst in enkele instanties, die vervolgens worden geclassificeerd. Als je de resultaten van het algoritme zou visualiseren, zou de manier waarop de categorieën worden opgesplitst op een boom lijken met veel bladeren.
Dit is een korte definitie van een beslissingsboom, maar laten we dieper ingaan op hoe beslissingsbomen werken. Een beter begrip van hoe beslissingsbomen opereren, evenals hun gebruikscases, zal je helpen om te weten wanneer je ze moet gebruiken tijdens je machine learning-projecten.
Formaat van een beslissingsboom
Een beslissingsboom is veel zoals een flowchart. Om een flowchart te gebruiken, begin je bij het startpunt, of de root, van de chart en dan, op basis van hoe je de filtercriteria van die startknoop beantwoordt, ga je naar een van de volgende mogelijke knopen. Dit proces wordt herhaald totdat een einde is bereikt.
Beslissingsbomen werken op dezelfde manier, met elke interne knoop in de boom als een soort test/filtercriterium. De knopen aan de buitenkant, de eindpunten van de boom, zijn de labels voor het datapunt in kwestie en ze worden “bladeren” genoemd. De takken die leiden van de interne knopen naar de volgende knoop zijn functies of conjunctions van functies. De regels die worden gebruikt om de datapunten te classificeren, zijn de paden die lopen van de root naar de bladeren.

Algoritmen voor beslissingsbomen
Beslissingsbomen werken op een algoritme dat de dataset opsplits in individuele datapunten op basis van verschillende criteria. Deze splitsingen worden gedaan met verschillende variabelen, of de verschillende functies van de dataset. Als het doel bijvoorbeeld is om te bepalen of een hond of een kat wordt beschreven door de invoerfuncties, kunnen variabelen waarop de gegevens worden gesplitst dingen zijn zoals “klauwen” en “blaffende geluiden”.
Wat zijn de algoritmen die worden gebruikt om de gegevens daadwerkelijk op te splitsen in takken en bladeren? Er zijn verschillende methoden die kunnen worden gebruikt om een boom op te splitsen, maar de meest voorkomende methode van splitsen is waarschijnlijk een techniek genaamd “recursieve binaire splitsing“. Wanneer deze methode van splitsen wordt uitgevoerd, begint het proces bij de root en vertegenwoordigt het aantal functies in de dataset het mogelijke aantal mogelijke splitsingen. Een functie wordt gebruikt om te bepalen hoeveel nauwkeurigheid elke mogelijke splitsing zal kosten, en de splitsing wordt gemaakt met de criteria die de minste nauwkeurigheid opoffert. Dit proces wordt recursief uitgevoerd en subgroepen worden gevormd met dezelfde algemene strategie.
Om de kosten van de splitsing te bepalen, wordt een kostfunctie gebruikt. Een andere kostfunctie wordt gebruikt voor regressietaken en classificatietaken. Het doel van beide kostfuncties is om te bepalen welke takken de meest vergelijkbare responswaarden hebben, of de meest homogene takken. Overweeg dat je testgegevens van een bepaalde klasse wilt laten volgen en dit heeft intuitieve zin.
Wat betreft de regressiekostfunctie voor recursieve binaire splitsing, is het algoritme dat wordt gebruikt om de kosten te berekenen als volgt:
som(y – voorspelling)^2
De voorspelling voor een bepaalde groep datapunten is het gemiddelde van de responsen van de trainingsgegevens voor die groep. Alle datapunten worden door de kostfunctie gehaald om de kosten te bepalen voor alle mogelijke splitsingen en de splitsing met de laagste kosten wordt geselecteerd.
Wat betreft de kostfunctie voor classificatie, is de functie als volgt:
G = som(pk * (1 – pk))
Dit is de Gini-score, en het is een maatstaf voor de effectiviteit van een splitsing, op basis van hoeveel instanties van verschillende klassen in de groepen zitten die resulteren uit de splitsing. Met andere woorden, het kwantificeert hoe gemengd de groepen zijn na de splitsing. Een optimale splitsing is wanneer alle groepen die resulteren uit de splitsing alleen maar invoer uit één klasse bevatten. Als een optimale splitsing is gemaakt, zal de “pk”-waarde 0 of 1 zijn en zal G gelijk zijn aan 0. Je kunt misschien raden dat de slechtste splitsing een is waarbij er een 50-50-representatie van de klassen in de splitsing is, in het geval van binaire classificatie. In dit geval zal de “pk”-waarde 0,5 zijn en zal G ook 0,5 zijn.
Het splitsingsproces wordt beëindigd wanneer alle datapunten zijn omgezet in bladeren en zijn geclassificeerd. Echter, je kunt de groei van de boom vroegtijdig willen stoppen. Grote complexe bomen zijn gevoelig voor overfitting, maar verschillende methoden kunnen worden gebruikt om dit te bestrijden. Een methode om overfitting te verminderen is om een minimumaantal datapunten op te geven dat zal worden gebruikt om een blad te maken. Een andere methode om overfitting te controleren is om de boom te beperken tot een bepaalde maximale diepte, wat controleert hoe lang een pad kan strekken van de root naar een blad.
Een ander proces dat betrokken is bij de creatie van beslissingsbomen is snoeien. Snoeien kan helpen om de prestaties van een beslissingsboom te verbeteren door takken te verwijderen die functies bevatten die weinig voorspellende kracht hebben/weinig belang hebben voor het model. Op deze manier wordt de complexiteit van de boom verminderd, het wordt minder waarschijnlijk dat het overfit en de voorspellende nut van het model wordt verhoogd.
Wanneer snoeien wordt uitgevoerd, kan het proces beginnen bij de top van de boom of de onderkant van de boom. Echter, de eenvoudigste methode van snoeien is om te beginnen met de bladeren en proberen de knoop te verwijderen die de meest voorkomende klasse in dat blad bevat. Als de nauwkeurigheid van het model niet verslechtert wanneer dit wordt gedaan, wordt de verandering behouden. Er zijn andere technieken die worden gebruikt om snoeien uit te voeren, maar de methode die hierboven is beschreven – snoeien met vermindering van fouten – is waarschijnlijk de meest voorkomende methode van beslissingsboom-snoeien.
Overwegingen voor het gebruik van beslissingsbomen
Beslissingsbomen zijn vaak nuttig wanneer classificatie moet worden uitgevoerd, maar rekenkundige tijd een belangrijke beperking is. Beslissingsbomen kunnen duidelijk maken welke functies in de gekozen datasets de meeste voorspellende kracht hebben. Bovendien, in tegenstelling tot veel machine learning-algoritmen waar de regels die worden gebruikt om de gegevens te classificeren moeilijk te interpreteren kunnen zijn, kunnen beslissingsbomen interpreteerbare regels produceren. Beslissingsbomen kunnen ook zowel categorische als continue variabelen gebruiken, wat betekent dat minder voorverwerking nodig is, in vergelijking met algoritmen die alleen één van deze variabeletypen kunnen verwerken.
Beslissingsbomen presteren over het algemeen niet zo goed wanneer ze worden gebruikt om de waarden van continue attributen te bepalen. Een andere beperking van beslissingsbomen is dat, wanneer classificatie wordt uitgevoerd, als er weinig trainingsvoorbeelden zijn maar veel klassen, de beslissingsboom onnauwkeurig kan zijn.










