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)

(1) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(12) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(23) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(34) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(45) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(56) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(67) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(78) vhigh vhigh vhigh hoog hoog hoog hoog hoog hoog hoog hoog

(89) hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog

(100) hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog

(111) hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog

(122) hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog

(133) hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog

(144) hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog

(155) hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog

(166) hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog hoog

(177) hoog hoog hoog hoog med med med med med med med

(188) med med med med med med med med med med med med

(199) med med med med med med med med med med med med

(210) med med med med med med med med med med med med

(221) med med med med med med med med med med med med

(232) med med med med med med med med med med med med

(243) med med med med med med med med med med med med

(254) med med med med med med med med med med laag laag

(265) laag laag laag laag laag laag laag laag laag laag laag laag

(276) laag laag laag laag laag laag laag laag laag laag laag laag

(287) laag laag laag laag laag laag laag laag laag laag laag laag

(298) laag laag laag laag laag laag laag laag laag laag laag laag

(309) laag laag laag laag laag laag laag laag laag laag laag laag

(320) laag laag laag laag laag laag laag laag laag laag laag laag

(331) laag laag laag laag laag

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 -

  1. Wat is een binaire boom in Java?
  2. R Programmeertaal
  3. Wat is Visual Studio Code?
  4. Inleiding tot lijngrafiek in R
  5. Gids voor Binomiale Distributie in R

Categorie: