How to make a tree plot in caret package?
30,153
Solution 1
The object returned from caret::train()
is a list. The element finalModel
contains your model.
Try this:
plot(t$finalModel)
text(t$finalModel)
Solution 2
nicer looking treeplot:
library(rattle)
fancyRpartPlot(t$finalModel)
Solution 3
Had the same problem, but the answers given here wouldn't solve it, since I used a random forest instead of a tree, the following is for all coming here having the same issue:
In short: A tree can only be displayed when the method is something like:
method = "rpart"
Using a random forest
method = "rf"
will result in the following plot:
Extended answer already here: Plot decision tree in R (Caret)
Related videos on Youtube
Author by
Jot eN
Updated on July 09, 2022Comments
-
Jot eN almost 2 years
I'm using caret package to model the data using rpart package.
library('caret') data(iris) formula <- as.formula(Species ~.) t <- train(formula,iris,method = "rpart",cp=0.002,maxdepth=8) plot(t)
As a result I get object 't' and I'm trying to plot this object to get tree plot. But the result look like that:
Are there any way to make a tree plot from caret train object?
-
cacti5 about 6 yearsIf your tree plot is simple another option could be using "tree map" visualizations. Not the same as a treeplot, but may be another interesting way to visualize the model. See treemapify in ggplot
-
-
Kim almost 4 yearsHow do you control for how many depths you want to draw?