我有一个类似于下面的模型,我想知道,有没有一种漂亮而有效的方法来绘制折叠,以显示我的模型的稳定性和性能?
data(iris)
df=iris[,1:4]
con = trainControl(method="cv", number=5,savePredictions = TRUE)
for_train = createDataPartition(df$Sepal.Length, p=.70, list=FALSE)
train=df[for_train,]
test=df[-for_train,]
trf_iris = train(Sepal.Length~ .,
data=train,ntree=5000,method="rf",metric="Rsquared",trControl=con,importance = TRUE)发布于 2020-12-10 17:30:02
如果运行str(trf_iris),您会发现trf_iris$control$index包含每个文件夹的行索引列表。您可以提取它们以重新创建五折叠子集,然后绘制它们。
library(dplyr)
library(ggplot2)
# get fold subsets
fold_data <- lapply(trf_iris$control$index, function(index) iris[index,]) %>%
bind_rows(.id = "Fold")
# example plots
ggplot(fold_data, aes(Sepal.Length, col = Fold)) + geom_density()
ggplot(fold_data, aes(Sepal.Width, Sepal.Length, col = Fold)) +
geom_point(col = "black") +
geom_smooth(method = lm, se = FALSE)

如果您发现分隔折叠图看起来更好,可以添加+ facet_wrap(.~Fold)。

https://stackoverflow.com/questions/65230831
复制相似问题