在R(Caret)中绘制决策树。

5

我使用rf方法训练了一个数据集。例如:

ctrl <- trainControl(
                     method = "LGOCV", 
                     repeats = 3, 
                     savePred=TRUE,
                     verboseIter = TRUE,
                     preProcOptions = list(thresh = 0.95)
                    )

preProcessInTrain<-c("center", "scale")
metric_used<-"Accuracy"
model <- train(
               Output ~ ., data = training,
               method = "rf",
               trControl = ctrl,
               metric=metric_used,
               tuneLength = 10,
               preProc = preProcessInTrain
              )

之后,我想绘制决策树,但是当我写plot(model)时,我得到了这个:plot(model)
如果我写plot(model$finalModel),我得到的是这个:plot(model$finalModel) 我想要绘制决策树…… 如何做到这一点? 谢谢 :)
1个回答

6
你正在使用的模型是随机森林,它不是单个决策树,而是由大量树组成的集合。随着树的数量增加,绘制最终模型将绘制训练和测试数据集上的错误率,类似于以下内容。请保留HTML标签。

你正在使用的模型是随机森林,它不是单个决策树,而是由大量树组成的集合。随着树的数量增加,绘制最终模型将绘制训练和测试数据集上的错误率,类似于以下内容。

enter image description here

如果您想使用单个决策树,可以尝试训练一个CART模型,如下所示:
model <- train(
  Species ~ ., data = training,
  method = "rpart",
  trControl = ctrl,
  metric=metric_used,
  tuneLength = 10,
  preProc = preProcessInTrain
)
library(rpart.plot)
rpart.plot(model$finalModel)

现在按照上述方式绘制最终模型将会为您绘制决策树。

1
非常感谢您!我有一个问题。蓝、绿、黑和红线是什么意思?我的意思是说,它们之间有什么区别? - Alonso Albaladejo Rojo
2
感谢您的问题。黑线表示整体OOB误差,而另外三条彩色线表示训练数据中每个3个类别的OOB误差(我使用了带有3个不同类标签的训练数据)。 - Sandipan Dey

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