R - Árvore de Decisão
A árvore de decisão é um gráfico que representa as escolhas e seus resultados na forma de uma árvore. Os nós no gráfico representam um evento ou escolha e as arestas do gráfico representam as regras ou condições de decisão. É usado principalmente em aplicativos de aprendizado de máquina e mineração de dados usando R.
Exemplos de uso de tress de decisão são - prever um e-mail como spam ou não spam, prever que um tumor é canceroso ou prever um empréstimo como um risco de crédito bom ou ruim com base nos fatores de cada um deles. Geralmente, um modelo é criado com dados observados, também chamados de dados de treinamento. Em seguida, um conjunto de dados de validação é usado para verificar e melhorar o modelo. R tem pacotes que são usados para criar e visualizar árvores de decisão. Para um novo conjunto de variável preditora, usamos este modelo para chegar a uma decisão sobre a categoria (sim / Não, spam / não spam) dos dados.
O pacote R "party" é usado para criar árvores de decisão.
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("party")
O pacote "festa" tem a função ctree() que é usado para criar e analisar a árvore de decisão.
Sintaxe
A sintaxe básica para criar uma árvore de decisão em R é -
ctree(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 readingSkillspara 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 ou não.
Aqui estão os dados de amostra.
# Load the party package. It will automatically load other
# dependent 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 ctree() função para criar a árvore de decisão e ver seu gráfico.
# Load the party package. It will automatically load other
# dependent packages.
library(party)
# Create the input data frame.
input.dat <- readingSkills[c(1:105),]
# Give the chart file a name.
png(file = "decision_tree.png")
# Create the tree.
output.tree <- ctree(
nativeSpeaker ~ age + shoeSize + score,
data = input.dat)
# Plot the tree.
plot(output.tree)
# Save the file.
dev.off()
Quando executamos o código acima, ele produz o seguinte resultado -
null device
1
Loading required package: methods
Loading required package: grid
Loading required package: mvtnorm
Loading required package: modeltools
Loading required package: stats4
Loading required package: strucchange
Loading required package: zoo
Attaching package: ‘zoo’
The following objects are masked from ‘package:base’:
as.Date, as.Date.numeric
Loading required package: sandwich
Conclusão
A partir da árvore de decisão mostrada acima, podemos concluir que qualquer pessoa cuja pontuação em habilidades de leitura seja inferior a 38,3 e a idade seja superior a 6 não é um falante nativo.