首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中绘制k折交叉验证图

如何在R中绘制k折交叉验证图
EN

Stack Overflow用户
提问于 2020-12-10 16:21:14
回答 1查看 293关注 0票数 1

我有一个类似于下面的模型,我想知道,有没有一种漂亮而有效的方法来绘制折叠,以显示我的模型的稳定性和性能?

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-10 17:30:02

如果运行str(trf_iris),您会发现trf_iris$control$index包含每个文件夹的行索引列表。您可以提取它们以重新创建五折叠子集,然后绘制它们。

代码语言:javascript
复制
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)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65230831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档