Reputation: 6396
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?
Upvotes: 25
Views: 33347
Reputation: 10366
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)
Upvotes: 9
Reputation: 6396
nicer looking treeplot:
library(rattle)
fancyRpartPlot(t$finalModel)
Upvotes: 51
Reputation: 179388
The object returned from caret::train()
is a list. The element finalModel
contains your model.
Try this:
plot(t$finalModel)
text(t$finalModel)
Upvotes: 32