R - Foresta casuale

Nell'approccio random forest, viene creato un gran numero di alberi decisionali. Ogni osservazione viene inserita in ogni albero decisionale. Il risultato più comune per ciascuna osservazione viene utilizzato come output finale. Una nuova osservazione viene inserita in tutti gli alberi e con un voto a maggioranza per ogni modello di classificazione.

Viene effettuata una stima degli errori per i casi che non sono stati utilizzati durante la costruzione dell'albero. Questo è chiamato un fileOOB (Out-of-bag) stima dell'errore che viene indicata come percentuale.

Il pacchetto R. "randomForest" viene utilizzato per creare foreste casuali.

Installa il pacchetto R.

Utilizzare il comando seguente nella console R per installare il pacchetto. È inoltre necessario installare i pacchetti dipendenti, se presenti.

install.packages("randomForest)

Il pacchetto "randomForest" ha la funzione randomForest() che viene utilizzato per creare e analizzare foreste casuali.

Sintassi

La sintassi di base per creare una foresta casuale in R è:

randomForest(formula, data)

Di seguito la descrizione dei parametri utilizzati:

  • formula è una formula che descrive il predittore e le variabili di risposta.

  • data è il nome del set di dati utilizzato.

Dati in ingresso

Useremo il set di dati R in-built denominato readingSkills per creare un albero decisionale. Descrive il punteggio delle capacità di lettura di qualcuno se conosciamo le variabili "età", "taglia", "punteggio" e se la persona è madrelingua.

Ecco i dati di esempio.

# Load the party package. It will automatically load other
# required packages.
library(party)

# Print some records from data set readingSkills.
print(head(readingSkills))

Quando eseguiamo il codice sopra, produce il seguente risultato e grafico:

nativeSpeaker   age   shoeSize      score
1           yes     5   24.83189   32.29385
2           yes     6   25.95238   36.63105
3            no    11   30.42170   49.60593
4           yes     7   28.66450   40.28456
5           yes    11   31.88207   55.46085
6           yes    10   30.07843   52.83124
Loading required package: methods
Loading required package: grid
...............................
...............................

Esempio

Useremo il file randomForest() funzione per creare l'albero decisionale e vedere il suo grafico.

# Load the party package. It will automatically load other
# required packages.
library(party)
library(randomForest)

# Create the forest.
output.forest <- randomForest(nativeSpeaker ~ age + shoeSize + score, 
           data = readingSkills)

# View the forest results.
print(output.forest) 

# Importance of each predictor.
print(importance(fit,type = 2))

Quando eseguiamo il codice sopra, produce il seguente risultato:

Call:
 randomForest(formula = nativeSpeaker ~ age + shoeSize + score,     
                 data = readingSkills)
               Type of random forest: classification
                     Number of trees: 500
No. of variables tried at each split: 1

        OOB estimate of  error rate: 1%
Confusion matrix:
    no yes class.error
no  99   1        0.01
yes  1  99        0.01
         MeanDecreaseGini
age              13.95406
shoeSize         18.91006
score            56.73051

Conclusione

Dalla foresta casuale mostrata sopra possiamo concludere che le dimensioni delle scarpe e il punteggio sono i fattori importanti per decidere se qualcuno è un madrelingua o meno. Inoltre il modello ha solo l'1% di errore, il che significa che possiamo prevedere con una precisione del 99%.