我已经仔细阅读了位于http://caret.r-forge.r-project.org/training.html的CARET文档,其中的小插曲,一切都很清楚(网站上的示例很有帮助!),但是我仍然对以下两个论点之间的关系感到困惑: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)