我是插入库的新手。我想使用train函数对我的数据集运行交叉验证(使用rpart方法进行分类)。我的目标是使用从我的火车呼叫返回的数据生成学习曲线。学习曲线将在x轴上绘制数据集大小。将训练和交叉验证集上的预测误差绘制为数据集大小的函数。
我的问题是,插入符号是否对训练和cv折叠做出预测?如果答案是肯定的,我将如何提取数据呢?
假设答案是肯定的,这里有一个简单的代码示例,您可以附加说明:
library(MASS)
data(biopsy)
biopsy <- biopsy[, -1]
names(biopsy) <- c("thick", "u.size", "u.shape", "adhsn", "s.size", "nucl", "chrom", "n.nuc", "mit", "class")
biopsy.v2 <- na.omit(biopsy)
set.seed(1)
ind <- sample(2, nrow(biopsy.v2), replace = TRUE, prob = c(0.7, + 0.3))
biop.train <- biopsy.v2[ind == 1, ]
tr.model <- caret::train(class ~ ., data= biop.train, trControl = trainControl(method="cv", number=4, verboseIter = FALSE, savePredictions = "final"), method='rpart')
#Can I extract train and cv accuracies from tr.model?
感谢。
注意:我意识到我可能需要使用我的数据集的不同样本重复调用train(假设插入符号也不支持此操作),并且这不会反映在此处的代码示例中。
答案 0 :(得分:0)
你可以试试这个:
包含每个重采样预测的数据框:
tr.model$pred
包含每个效果指标列的数据框。每行对应于每个重新采样:
tr.model$resample
包含最终参数的数据框:
tr.model$bestTune
具有训练错误率和调整参数值的数据框:
tr.model$results
指定重复的CV:
trainControl(..., repeats = n)
其中n是一个整数(要计算的完整折叠集的数量)
编辑:确定测试折叠中的哪些重新采样:
相关信息在tr.model $ pred数据框中:
tr.model$pred[tr.model$pred$Resample=="Fold1",4:5]
tr.model$pred[tr.model$pred$Resample=="Fold2",4:5]
tr.model$pred[tr.model$pred$Resample=="Fold3",4:5]
tr.model$pred[tr.model$pred$Resample=="Fold4",4:5]
那些不在测试折叠中的人是在训练折叠中