Árvore de decisão em R - Guia Abrangente da Árvore de Decisão em R

Índice:

Anonim

Visão geral da árvore de decisão em R

Uma árvore de decisão em r é uma forma de aprendizado supervisionado usado para corrigir os problemas de classificação e regressão. Eles são um forte algoritmo de aprendizado de máquina para trabalhar com conjuntos de dados muito complexos. O conceito principal por trás da árvore de decisão é dividir o conjunto de dados fornecido. Para percorrer este artigo, é recomendável ter conceitos básicos de aprendizado no algoritmo da árvore de decisão.

Árvore de decisão em R

Para trabalhar com uma árvore de Decisão em R ou em termos leigos, é necessário trabalhar com grandes conjuntos de dados e o uso direto de pacotes R internos facilita o trabalho. Uma árvore de decisão é um modelo de suposição não linear que usa uma estrutura em árvore para classificar os relacionamentos. A árvore de decisão em R usa dois tipos de variáveis: variável categórica (Sim ou Não) e variáveis ​​contínuas. As terminologias da Árvore de Decisão que consistem no nó raiz (forma um rótulo de classe), nós de decisão (subnós) e nó terminal (não se dividem mais). O conceito único por trás dessa abordagem de aprendizado de máquina é que eles classificam os dados fornecidos em classes que formam fluxo sim ou não (abordagem if-else) e representam os resultados em uma estrutura em árvore. O algoritmo usado na Árvore de Decisão em R é o Índice de Gini, ganho de informação, Entropia. Existem diferentes pacotes disponíveis para construir uma árvore de decisão em R: rpart (recursiva), festa, floresta aleatória, CART (classificação e regressão). É muito fácil implementar uma Árvore de Decisão no R.

Para uma análise clara, a árvore é dividida em grupos: um conjunto de treinamento e um conjunto de testes. A implementação a seguir usa um conjunto de dados do carro. Este conjunto de dados contém 1727 variáveis ​​obs e 9, com as quais a árvore de classificação é construída. Neste artigo, vamos arborizar um pacote de 'festa'. A função create () fornece árvores condicionais com a função plot.

Implementação usando R

O objetivo é estudar um conjunto de dados do carro para prever se o valor do carro é alto / baixo e médio.

i) Preparando dados

Instalando os Pacotes e Carregar Bibliotecas

Este módulo lê o conjunto de dados como um quadro de dados completo e a estrutura dos dados é fornecida da seguinte maneira:

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

Resultado:

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

ii) Particionar um dado

Dividindo os dados usando conjuntos de dados de treinamento. Uma árvore de decisão é dividida em subnós para ter boa precisão. A complexidade é determinada pelo tamanho da árvore e pela taxa de erros. Aqui fazendo reprodutividade e gerando um número de linhas.

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

Fig : Mostrando valores de dados

Em seguida, tornando o valor dos dados em 2

validate<-data(dt==2, )

Fig : Exibindo o console do R no R Studio

Criando uma árvore de decisão no R com a parte do pacote

  • Clique em package-> install -> party. Aqui, extraímos as três primeiras entradas da amostra de 1727 observações sobre conjuntos de dados. Criando um modelo para prever alto, baixo, médio entre as entradas.

Implementação:

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

Resultado:

Gráficos usando Ctree

Predição:

Prob gera probabilidade na pontuação,

Implementação:

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

(89) alto alto alto alto alto alto alto alto alto alto alto

(100) alto alto alto alto alto alto alto alto alto alto alto

(111) alto alto alto alto alto alto alto alto alto alto alto

(122) alto alto alto alto alto alto alto alto alto alto alto

(133) alto alto alto alto alto alto alto alto alto alto alto

(144) alto alto alto alto alto alto alto alto alto alto alto

(155) alto alto alto alto alto alto alto alto alto alto alto

(166) alto alto alto alto alto alto alto alto alto alto alto

(177) alto alto alto alto med med med med med med

(188) med med med med med med med med

(199) med med med med med med med med

(210) med med med med med med med med

(221) med med med med med med med med

(232) med med med med med med med med

(243) med med med med med med med med

(254) med med med med med med med baixo baixo

(265) baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo

(276) baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo

(287) baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo

(298) baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo

(309) baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo

(320) baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo baixo

(331) baixo baixo baixo baixo baixo

Níveis: alto, baixo e médio

Árvore de decisão usando rpart

Para prever a classe usando a função rpart () para o método de classe. rpart () usa a medida do índice Gini para dividir os nós.

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

"

rpart.plot(tr, extra=2)

Essa linha representa a árvore e exibe a probabilidade de criar recursos extras para o conjunto 2 e o resultado produzido é dado abaixo.

Erro de classificação incorreta

A taxa de erro evita o ajuste excessivo.

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

Resultado:

impressão (tbl)

alta baixa med alta

alta 332 0 0 0

baixo 0 359 0 0

med 0 0 350 0

0 0 0 351

Conclusão

A árvore de decisão é um desafio-chave em R e a força da árvore é que elas são fáceis de entender e ler quando comparadas com outros modelos. Eles estão sendo usados ​​popularmente em problemas de ciência de dados. Estas são as ferramentas que produzem a hierarquia de decisões implementadas na análise estatística. É necessário conhecimento estatístico para entender as interpretações lógicas da árvore de Decisão. Como vimos, a árvore de decisão é fácil de entender e os resultados são eficientes quando há menos rótulos de classe e a outra parte negativa é quando há mais cálculos de rótulos de classe complexos. Este post faz com que se torne proficiente para criar modelos de aprendizagem preditivos e baseados em árvores.

Artigos recomendados

Este é um guia para a Árvore de Decisão no R. Aqui discutimos a introdução, como usar e a implementação do R. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. O que é uma árvore binária em Java?
  2. R Linguagem de Programação
  3. O que é o Código do Visual Studio?
  4. Introdução ao gráfico de linha em R
  5. Guia de Distribuição Binomial em R