Overzicht van beslissingsboom in R
Een beslissingsboom in r is een vorm van begeleid leren die wordt gebruikt om de classificatie- en regressieproblemen op te lossen. Ze zijn een krachtig algoritme voor machine learning om met zeer complexe gegevenssets te werken. Het kernconcept achter de beslissingsboom is om de gegeven gegevensset te splitsen. Om dit artikel te doorlopen, wordt voorgesteld om basisleerconcepten te hebben voor het beslissingsboomalgoritme.
Beslisboom in R
Om met een beslissingsboom in R of in leek te werken, is het noodzakelijk om met big data-sets te werken en direct gebruik van ingebouwde R-pakketten maakt het werk eenvoudiger. Een beslissingsboom is een niet-lineair veronderstellingsmodel dat een boomstructuur gebruikt om de relaties te classificeren. De beslissingsboom in R gebruikt twee soorten variabelen: categorische variabele (Ja of Nee) en continue variabelen. De terminologieën van de beslissingsboom, bestaande uit het basisknooppunt (vormt een klassenlabel), beslissingsknooppunten (subknooppunten), eindknooppunt (niet verder splitsen). Het unieke concept achter deze machine learning-benadering is dat ze de gegeven gegevens classificeren in klassen die een ja of nee-stroom vormen (if-else-benadering) en de resultaten in een boomstructuur weergeven. Het algoritme dat wordt gebruikt in de beslissingsboom in R is de Gini-index, informatieverstrekking, entropie. Er zijn verschillende pakketten beschikbaar om een beslissingsboom in R te bouwen: rpart (recursief), party, random Forest, CART (classificatie en regressie). Het is vrij eenvoudig om een beslissingsboom in R. te implementeren
Voor een duidelijke analyse is de boom verdeeld in groepen: een trainingsset en een testset. De volgende implementatie maakt gebruik van een autogegevensset. Deze dataset bevat 1727 obs en 9 variabelen, waarmee een classificatieboom wordt gebouwd. In dit artikel laat boom een 'party' pakket. De functie create () geeft voorwaardelijke bomen met de plotfunctie.
Implementatie met R
Het doel is om een autogegevensset te bestuderen om te voorspellen of een autowaarde hoog / laag en gemiddeld is.
i) Gegevens voorbereiden
De pakketten installeren en bibliotheken laden
Deze module leest de dataset als een compleet dataframe en de structuur van de data wordt als volgt gegeven:
data<-car // Reading the data as a data frame
str(data) // Displaying the structure and the result shows the predictor values.
Output:
Determining Factordata$vhigh View(car)
> data<-car
ii) Gegevens partitioneren
De gegevens splitsen met behulp van trainingsdatasets. Een beslissingsboom is opgesplitst in subknopen om een goede nauwkeurigheid te hebben. De complexiteit wordt bepaald door de grootte van de boom en het foutenpercentage. Hier reproductiviteit doen en een aantal rijen genereren.
set. Seed (1234)
dt<-sample (2, nrow(data), replace = TRUE, prob=c (0.8, 0.2))
validate<-data(dt==2, )
Fig : Gegevenswaarden tonen
Maak vervolgens gegevenswaarde naar 2
validate<-data(dt==2, )
Afb : R-console weergeven in R Studio
Een beslisboom maken in R met de pakketpartij
- Klik op pakket-> installeren -> feestje. Hier hebben we de eerste drie ingangen genomen uit de steekproef van 1727 observaties op datasets. Een model maken om hoog, laag, medium te voorspellen onder de ingangen.
Implementatie:
library(party)
tree<-ctree(v~vhigh+vhigh.1+X2, data = train)
tree
Output:
Plots met behulp van Ctree
Voorspelling:
Prob genereert kans op scoren,
Implementatie:
predict(tree, validate, type="prob")
predict(tree, validate)
Niveaus: hoog laag med vhigh
Beslisboom met rpart
De klasse voorspellen met de functie rpart () voor de klassenmethode. rpart () gebruikt de Gini-indexmaat om de knooppunten te splitsen.
library(rpart)
tr<-rpart (v~vhigh+vhigh.1+X2, train)
library (rpart. plot)
rpart. plot(tr)
“
rpart.plot(tr, extra=2)
Deze lijn plot de boom en om de waarschijnlijkheid weer te geven die extra functies voor set 2 maakt en het geproduceerde resultaat wordt hieronder gegeven.
Misclassificatiefout
Het foutenpercentage voorkomt overfitting.
tbl<-table(predict(tree), train $v)
print(tbl)
tepre<-predict(tree, new=validate)
Output:
afdrukken (TBL)
hoog laag gemiddeld
hoog 332 0 0 0
laag 0 359 0 0
med 0 0 350 0
vhigh 0 0 0 351
Conclusie
De beslissingsboom is een belangrijke uitdaging in R en de kracht van de boom is dat ze gemakkelijk te begrijpen en te lezen zijn in vergelijking met andere modellen. Ze worden in de volksmond gebruikt in data science-problemen. Dit is de tool produceert de hiërarchie van beslissingen geïmplementeerd in statistische analyse. Statistische kennis is vereist om de logische interpretaties van de beslissingsboom te begrijpen. Zoals we hebben gezien, is de beslissingsboom eenvoudig te begrijpen en zijn de resultaten efficiënt wanneer er minder klassenlabels zijn en het andere nadeel is dat er meer berekeningen voor klassenlabels worden gecompliceerd. Deze post maakt iemand bekwaam om voorspellende en op boom gebaseerde leermodellen te bouwen.
Aanbevolen artikelen
Dit is een gids voor de beslissingsboom in R. Hier bespreken we de introductie, het gebruik en de implementatie van R. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -
- Wat is een binaire boom in Java?
- R Programmeertaal
- Wat is Visual Studio Code?
- Inleiding tot lijngrafiek in R
- Gids voor Binomiale Distributie in R