Een beslissingsboom tekenen in r (met voorbeeld)
Bij machinaal leren is een beslisboom een type model dat een reeks voorspellende variabelen gebruikt om een beslisboom te creëren die de waarde van een responsvariabele voorspelt.
De eenvoudigste manier om een beslissingsboom in R te plotten is door de functie prp() uit het pakket rpart.plot te gebruiken.
Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.
Voorbeeld: een beslisboom tekenen in R
Voor dit voorbeeld gebruiken we de Hitters- dataset uit het ISLR- pakket, die verschillende informatie bevat over 263 professionele honkbalspelers.
We zullen deze dataset gebruiken om een regressieboom op te bouwen die homeruns en gespeelde jaren gebruikt om het salaris van een bepaalde speler te voorspellen.
De volgende code laat zien hoe u deze regressieboom kunt aanpassen en hoe u de functie prp() kunt gebruiken om de boom te tekenen:
library (ISLR) library (rpart) library (rpart.plot) #build the initial decision tree tree <- rpart(Salary ~ Years + HmRun, data=Hitters, control=rpart. control (cp= .0001 )) #identify best cp value to use best <- tree$cptable[which. min (tree$cptable[," xerror "])," CP "] #produce a pruned tree based on the best cp value pruned_tree <- prune (tree, cp=best) #plot the pruned tree prp(pruned_tree)
Merk op dat we het uiterlijk van de beslissingsboom ook kunnen aanpassen met behulp van de faclen , extra , roundint en cijfers argumenten in de prp () functie:
#plot decision tree using custom arguments
prp(pruned_tree,
faclen= 0 , #use full names for factor labels
extra= 1 , #display number of observations for each terminal node
roundint= F , #don't round to integers in output
digits= 5 ) #display 5 decimal places in output
We kunnen zien dat de boom zes eindknooppunten heeft.
Elk eindknooppunt geeft het voorspelde salaris van de spelers in dat knooppunt weer, evenals het aantal observaties uit de oorspronkelijke dataset dat bij die beoordeling hoort.
We kunnen bijvoorbeeld zien dat er in de originele dataset 90 spelers waren met minder dan 4,5 jaar ervaring en dat hun gemiddelde salaris $225,83K bedroeg.
We kunnen de boom ook gebruiken om het salaris van een bepaalde speler te voorspellen op basis van zijn jarenlange ervaring en gemiddelde homeruns.
Een speler met zeven jaar ervaring en gemiddeld vier homeruns heeft bijvoorbeeld een verwacht salaris van €502,81k .
Dit is een van de voordelen van het gebruik van een beslisboom: we kunnen de resultaten gemakkelijk visualiseren en interpreteren.
Aanvullende bronnen
De volgende tutorials bieden aanvullende informatie over beslissingsbomen:
Een inleiding tot classificatie- en regressiebomen
Beslissingsboom versus willekeurige forests: wat is het verschil?
Hoe classificatie- en regressiebomen in R passen