【发布时间】:2013-02-04 19:21:05
【问题描述】:
我仔细阅读了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,你实际上是在选择交叉验证的类型,所以我不确定如果你使用index,method扮演什么角色。createDataPartition和createResample有什么区别?是不是createDataPartition进行分层引导,而createResample没有?
3) 我如何使用插入符号进行分层 k-fold(例如 10 折)交叉验证?下面会做吗?
tmp <- createFolds(logBBB, k=10, list=TRUE, times = 100)
trControl = trainControl(method = "cv", index = tmp)
ctreeFit <- train(bbbDescr, logBBB, "ctree",trControl=trControl)
【问题讨论】:
标签: r machine-learning cross-validation