Pergunta

Quando utilizar o R rpart função, pode ajustar facilmente um modelo com ele.por exemplo:

# Classification Tree with rpart
library(rpart)

# grow tree 
fit <- rpart(Kyphosis ~ Age + Number + Start,
     method="class", data=kyphosis)

printcp(fit) # display the results 
plotcp(fit) 
summary(fit) # detailed summary of splits

# plot tree 
plot(fit, uniform=TRUE, 
     main="Classification Tree for Kyphosis")
text(fit, use.n=TRUE, all=TRUE, cex=.8)

A minha pergunta é - Como posso medir a "importância" de cada um dos meus três variáveis explicativas (Idade, Número de Iniciar) para o modelo?

Se se tratava de um modelo de regressão, eu poderia ter olhado p-valores do "anova" F-teste (entre lm modelos com e sem a variável).Mas o que é a equivalência de usar "anova" na lm para um rpart objeto?

(Espero que eu consegui fazer a minha pergunta clara)

Obrigado.

Foi útil?

Solução

Claro anova seria impossível, como anova envolve o cálculo da variação total na variável de resposta e de particionamento no informativo componentes (ASS ESS).Eu não consigo ver como pode-se calcular a soma dos quadrados de uma variável categórica, como a Cifose.

Eu acho que o que você realmente falando é a Seleção de Atributo (ou avaliação).Gostaria de usar o information gain medir, por exemplo.Eu acho que isso é o que é usado para selecionar o atributo de teste em cada nó da árvore e o atributo com o maior de informações ganho (ou maior redução de entropia) é escolhido como o teste de atributo para o nó atual.Este atributo minimiza a informação necessária para classificar as amostras resultantes partições.

Não tenho conhecimento se existe um método de classificação de atributos de acordo com suas informações ganho em R, mas eu sei que não há no WEKA e é chamado de InfoGainAttributeEval Ele avalia que o valor de um atributo medindo as informações ganho com relação à classe.E se você usar Ranker como o Search Method, os atributos são classificados de acordo com suas avaliações individuais.

EDITAR Eu finalmente encontrei uma maneira de fazer isto no R utilizando a Biblioteca CORElearn

estInfGain <- attrEval(Kyphosis ~ ., kyphosis, estimator="InfGain")
print(estInfGain)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top