Panoramica dell'albero decisionale in R

Un albero decisionale in r è una forma di apprendimento supervisionato utilizzato per correggere i problemi di classificazione e regressione. Sono un potente algoritmo di machine learning per lavorare con set di dati molto complessi. Il concetto alla base dell'albero decisionale è quello di dividere il set di dati indicato. Per leggere questo articolo, si suggerisce di avere concetti di apprendimento di base sull'algoritmo dell'albero decisionale.

Albero decisionale in R

Per lavorare con un albero decisionale in termini di R o in laici, è necessario lavorare con set di big data e l'uso diretto di pacchetti R integrati semplifica il lavoro. Un albero decisionale è un modello di assunzione non lineare che utilizza una struttura ad albero per classificare le relazioni. L'albero decisionale in R utilizza due tipi di variabili: variabile categoriale (Sì o No) e variabili continue. Le terminologie dell'albero decisionale consistono nel nodo radice (forma un'etichetta di classe), nodi di decisione (sottonodi), nodo terminale (non suddividere ulteriormente). Il concetto unico alla base di questo approccio di apprendimento automatico è che classificano i dati dati in classi che formano un flusso sì o no (approccio if-else) e rappresentano i risultati in una struttura ad albero. L'algoritmo utilizzato nell'albero decisionale in R è l'indice Gini, guadagno di informazioni, entropia. Esistono diversi pacchetti disponibili per costruire un albero decisionale in R: rpart (ricorsivo), party, foresta casuale, CART (classificazione e regressione). È abbastanza facile implementare un albero decisionale in R.

Per un'analisi chiara, l'albero è diviso in gruppi: un set di addestramento e un set di test. La seguente implementazione utilizza un set di dati per auto. Questo set di dati contiene 1727 obs e 9 variabili, con le quali viene costruito l'albero di classificazione. In questo articolo lascia ad albero un pacchetto "party". La funzione create () fornisce alberi condizionali con la funzione trama.

Implementazione usando R

L'obiettivo è studiare un set di dati di auto per prevedere se un valore di auto è alto / basso e medio.

i) Preparazione dei dati

Installazione dei pacchetti e caricamento delle librerie

Questo modulo legge il set di dati come un frame di dati completo e la struttura dei dati viene fornita come segue:

data<-car // Reading the data as a data frame
str(data) // Displaying the structure and the result shows the predictor values.

Produzione:

Determining Factordata$vhigh View(car)
> data<-car

ii) Partizionare un dato

Suddivisione dei dati mediante set di dati di allenamento. Un albero decisionale è suddiviso in sottonodi per avere una buona precisione. La complessità è determinata dalla dimensione dell'albero e dal tasso di errore. Qui facendo riproducibilità e generando un numero di righe.

set. Seed (1234)
dt<-sample (2, nrow(data), replace = TRUE, prob=c (0.8, 0.2))
validate<-data(dt==2, )

Fig : mostra i valori dei dati

Successivamente, impostando il valore dei dati su 2

validate<-data(dt==2, )

Fig : Visualizzazione della console R in R Studio

Creazione di un albero decisionale in R con il pacchetto

  • Fai clic su pacchetto-> installa -> party. Qui abbiamo preso i primi tre input dal campione di 1727 osservazioni su set di dati. Creazione di un modello per prevedere alta, bassa, media tra gli input.

Implementazione:

library(party)
tree<-ctree(v~vhigh+vhigh.1+X2, data = train)
tree

Produzione:

Trame usando Ctree

Predizione:

Prob genera probabilità sul punteggio,

Implementazione:

predict(tree, validate, type="prob")
predict(tree, validate)

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

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

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

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

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

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

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

(78) vhigh vhigh vhigh high high high high high high high high

(89) high high high high high high high high high high

(100) high high high high high high high high high high high

(111) alta alta alta alta alta alta alta alta alta alta

(122) high high high high high high high high high high

(133) alta alta alta alta alta alta alta alta alta alta

(144) alta alta alta alta alta alta alta alta alta alta

(155) high high high high high high high high high high

(166) alta alta alta alta alta alta alta alta alta alta

(177) alta alta alta alta med med med med med med

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

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

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

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

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

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

(254) med med med med med med med medio basso

(265) basso basso basso basso basso basso basso basso basso basso basso

(276) basso basso basso basso basso basso basso basso basso basso basso basso

(287) basso basso basso basso basso basso basso basso basso basso basso basso

(298) basso basso basso basso basso basso basso basso basso basso basso basso

(309) basso basso basso basso basso basso basso basso basso basso basso basso

(320) basso basso basso basso basso basso basso basso basso basso basso

(331) basso basso basso basso basso

Livelli: alto basso medio vhigh

Albero decisionale usando rpart

Per prevedere la classe usando la funzione rpart () per il metodo class. rpart () utilizza la misura dell'indice Gini per dividere i nodi.

library(rpart)
tr<-rpart (v~vhigh+vhigh.1+X2, train)
library (rpart. plot)
rpart. plot(tr)

rpart.plot(tr, extra=2)

Questa linea traccia l'albero e per visualizzare la probabilità di creare funzioni extra per impostare 2 e il risultato prodotto è riportato di seguito.

Errore di classificazione errata

Il tasso di errore impedisce il sovradimensionamento.

tbl<-table(predict(tree), train $v)
print(tbl)
tepre<-predict(tree, new=validate)

Produzione:

stampare (TBL)

alto basso medio alto

alto 332 0 0 0

basso 0 359 0 0

med 0 0 350 0

vhigh 0 0 0 351

Conclusione

L'albero decisionale è una sfida chiave in R e la forza dell'albero è che sono facili da capire e leggere rispetto ad altri modelli. Sono comunemente usati nei problemi di scienza dei dati. Questi sono gli strumenti che producono la gerarchia delle decisioni implementate nell'analisi statistica. Sono necessarie conoscenze statistiche per comprendere le interpretazioni logiche dell'albero decisionale. Come abbiamo visto l'albero delle decisioni è facile da capire e i risultati sono efficienti quando ha meno etichette di classe e l'altra parte negativa di esse è quando ci sono più calcoli delle etichette di classe che si complicano. Questo post rende abili a costruire modelli di apprendimento predittivi e basati su alberi.

Articoli consigliati

Questa è una guida all'albero decisionale in R. Qui discutiamo l'introduzione, come usare e implementare R. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Che cos'è un albero binario in Java?
  2. R Linguaggio di programmazione
  3. Che cos'è il codice di Visual Studio?
  4. Introduzione al grafico a linee in R
  5. Guida alla distribuzione binomiale in R

Categoria: