R - Floresta Aleatória

Na abordagem de floresta aleatória, um grande número de árvores de decisão é criado. Cada observação é inserida em cada árvore de decisão. O resultado mais comum para cada observação é usado como resultado final. Uma nova observação é inserida em todas as árvores e obtendo uma votação majoritária para cada modelo de classificação.

Uma estimativa de erro é feita para os casos que não foram usados ​​durante a construção da árvore. Isso é chamado deOOB (Out-of-bag) estimativa de erro que é mencionada como uma porcentagem.

O pacote R "randomForest" é usado para criar florestas aleatórias.

Instale o pacote R

Use o comando abaixo no console R para instalar o pacote. Você também deve instalar os pacotes dependentes, se houver.

install.packages("randomForest)

O pacote "randomForest" tem a função randomForest() que é usado para criar e analisar florestas aleatórias.

Sintaxe

A sintaxe básica para criar uma floresta aleatória em R é -

randomForest(formula, data)

A seguir está a descrição dos parâmetros usados ​​-

  • formula é uma fórmula que descreve o preditor e as variáveis ​​de resposta.

  • data é o nome do conjunto de dados usado.

Dados de entrada

Usaremos o conjunto de dados embutido do R denominado readingSkills para criar uma árvore de decisão. Descreve a pontuação das habilidades de leitura de alguém se conhecermos as variáveis ​​"idade", "tamanho do calçado", "pontuação" e se a pessoa é falante nativo.

Aqui estão os dados de amostra.

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

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

Quando executamos o código acima, ele produz o seguinte resultado e gráfico -

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
...............................
...............................

Exemplo

Vamos usar o randomForest() função para criar a árvore de decisão e ver seu gráfico.

# 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 executamos o código acima, ele produz o seguinte resultado -

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

Conclusão

Da floresta aleatória mostrada acima, podemos concluir que o tamanho do calçado e a pontuação são os fatores importantes para decidir se alguém é falante nativo ou não. Além disso, o modelo tem apenas 1% de erro, o que significa que podemos prever com 99% de precisão.