#r #plot #r-caret #k-fold
#r #построить #r-каретка #k-кратная
Вопрос:
У меня есть модель, похожая на следующую, и мне интересно, есть ли красивый и эффективный способ построения сгибов, чтобы показать стабильность и производительность моей модели?
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)
Ответ №1:
Если вы запустите 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)
, если обнаружите, что разделение графиков сгиба выглядит лучше.
Комментарии:
1. большое вам спасибо!! фасеты очень полезны!!