如何在caret软件包中制作树状图?

25

我正在使用caret包来使用rpart包对数据进行建模。

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

作为结果,我得到了对象“t”,并尝试绘制该对象以获取树状图。但是结果看起来像这样: enter image description here 有没有办法从caret训练对象中制作树状图?

如果你的树状图比较简单,另一个选择可能是使用“树状图”可视化。虽然不同于树状图,但这可能是另一种有趣的可视化模型的方式。请参见 ggplot 中的 treemapify - cacti5
3个回答

51

更美观的树状图:

library(rattle)
fancyRpartPlot(t$finalModel)

enter image description here


你如何控制你想要绘制的深度? - Kim

32
caret::train()返回的对象是一个列表。元素finalModel包含你的模型。
试试这个:
plot(t$finalModel)
text(t$finalModel)

enter image description here


9
有同样的问题,但是这里给出的答案不能解决它,因为我使用的是随机森林而不是单个决策树。以下是给所有遇到相同问题的人:

简而言之:只有在方法是类似于下面的情况下才可以显示决策树:

method = "rpart"

使用随机森林
method = "rf"

以下是结果图: enter image description here 已经有完整的答案在这里了: 在R中绘制决策树(Caret)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接