我已经仔细阅读CARET在文档: http://caret.r-forge.r-project.org/training.html的护身符,一切都是很清楚(网站上的例子有很大的帮助!),但我仍然是一个困惑于两个参数之间的关系trainControl
:
method
index
和之间的相互作用trainControl
和插入符号数据分割功能(例如createDataPartition
, createResample
, createFolds
和createMultiFolds
)
为了更好的框架,我的问题,让我用从文档下面的例子:
data(BloodBrain)
set.seed(1)
tmp <- createDataPartition(logBBB,p = .8, times = 100)
trControl = trainControl(method = "LGOCV", index = tmp)
ctreeFit <- train(bbbDescr, logBBB, "ctree",trControl=trControl)
我的问题是:
如果我使用createDataPartition
在上面的例子(我认为不分层引导),因为和我通过结果作为index
来trainControl
做我需要使用LGOCV
在我的电话的方法trainControl
? 如果我用另外一个(如cv
)将有什么不同? 在我的头上,一旦你修复index
,实质上是选择交叉验证的类型,所以我不知道什么样的作用method
,如果你使用起着index
。
是什么区别createDataPartition
和createResample
? 难道createDataPartition
并分层引导,而createResample
不?
3)如何可以做分层的k倍(例如,使用插入符号10倍)交叉验证? 将下面做呢?
tmp <- createFolds(logBBB, k=10, list=TRUE, times = 100)
trControl = trainControl(method = "cv", index = tmp)
ctreeFit <- train(bbbDescr, logBBB, "ctree",trControl=trControl)
如果你不知道你是否使用索引什么样的角色扮演的方法,为什么不适用所有的方法和结果进行比较。 这是comparaison的盲法,但它可以给你一些直觉。
methods <- c('boot', 'boot632', 'cv',
'repeatedcv', 'LOOCV', 'LGOCV')
我创建我的索引:
n <- 100
tmp <- createDataPartition(logBBB,p = .8, times = n)
我申请trainControl
对我的方法的列表,我删除从结果索引,因为它是常见的到我的所有方法。
ll <- lapply(methods,function(x)
trControl = trainControl(method = x, index = tmp))
ll <- sapply(ll,'[<-','index', NULL)
因此,我LL是:
[,1] [,2] [,3] [,4] [,5] [,6]
method "boot" "boot632" "cv" "repeatedcv" "LOOCV" "LGOCV"
number 25 25 10 10 25 25
repeats 25 25 1 1 25 25
verboseIter FALSE FALSE FALSE FALSE FALSE FALSE
returnData TRUE TRUE TRUE TRUE TRUE TRUE
returnResamp "final" "final" "final" "final" "final" "final"
savePredictions FALSE FALSE FALSE FALSE FALSE FALSE
p 0.75 0.75 0.75 0.75 0.75 0.75
classProbs FALSE FALSE FALSE FALSE FALSE FALSE
summaryFunction ? ? ? ? ? ?
selectionFunction "best" "best" "best" "best" "best" "best"
preProcOptions List,3 List,3 List,3 List,3 List,3 List,3
custom NULL NULL NULL NULL NULL NULL
timingSamps 0 0 0 0 0 0
predictionBounds Logical,2 Logical,2 Logical,2 Logical,2 Logical,2 Logical,2
文章来源: CARET. Relationship between data splitting and trainControl