web-dev-qa-db-fra.com

Comment faire une parcelle d'arbre en paquet caret?

J'utilise le package caret pour modéliser les données à l'aide du package rpart.

library('caret')
data(iris)
formula <- as.formula(Species ~.)
t <- train(formula,iris,method = "rpart",cp=0.002,maxdepth=8)
plot(t)

En conséquence, j'obtiens l'objet "t" et j'essaie de tracer cet objet pour obtenir un arbre. Mais le résultat ressemble à ça: enter image description here

Existe-t-il un moyen de créer un arbre à partir d'un objet de train de correspondance?

22
Jot eN

L'objet renvoyé par caret::train() est une liste. L'élément finalModel contient votre modèle.

Essaye ça:

plot(t$finalModel)
text(t$finalModel)

enter image description here

27
Andrie

plus belle arborescence:

library(rattle)
fancyRpartPlot(t$finalModel)

enter image description here

46
Jot eN

J'ai eu le même problème, mais les réponses données ici ne le résoudraient pas, puisque j'ai utilisé une forêt aléatoire au lieu d'un arbre, ce qui suit est pour tous ceux qui viennent ici avec le même problème:

En bref: Un arbre ne peut être affiché que lorsque la méthode est quelque chose comme:

method = "rpart"

Utilisation d'une forêt aléatoire

method = "rf"

entraînera le tracé suivant: enter image description here

Réponse étendue déjà ici: Arbre de décision du tracé dans R (curseur)

9
mrk