在插入符号documentation中,trainControl的p参数引用"For leave-group out交叉验证:训练百分比“。
谁能解释一下在定义10折交叉验证以传递到插入符包的训练函数时,以下各项的区别-
(a)。控制<- trainControl(method = "cv",number = 10,p=.9)
(b)。control <- trainControl(方法= "cv",数量= 10)
例如,假设我们有一个包含10,000个观察值的数据集。因为我们有10个折叠,对于(a),我的理解是每个折叠将有1000个观察,每次9个折叠,总共9000个观察(90%)将用于训练。对于(b),用于训练的9个折叠将总共具有750 (75%)个观察值(作为p=.75的默认值),而用于测试的其余折叠始终具有250 (25%)个观察值。我的理解正确吗?
你把这两种方法称为10折交叉验证吗?或者第一个应该被称为leave-group out -10折交叉验证?
发布于 2020-12-26 19:00:18
在使用时
control <- trainControl(method = "LGOCV", number = 10, p=.9)
您将执行10次重复的休假组验证,对于每次重复,将随机抽取90% (p = 0.9)的数据并用于训练,而其余10%的数据将用于测试。这也称为蒙特卡洛交叉验证。通常使用MC-CV执行更多的重复。
在使用时
control <- trainControl(method = "cv", number = 10)
数据集将被分成10个部分,并将执行10次重采样迭代。在每次迭代中,9个部分将用于训练,其余部分将用于测试。此过程将一直进行,直到所有部件都用于测试为止。这就是所谓的K折交叉验证。在这种情况下,K是10。
进一步阅读:https://stats.stackexchange.com/questions/51416/k-fold-vs-monte-carlo-cross-validation
在每种情况下,大约90%的数据将用于每次重采样迭代中的训练。
编辑:我已经修改了上面的代码
control <- trainControl(method = "cv", number = 10, p=.9)
至
control <- trainControl(method = "LGOCV", number = 10, p=.9)
因为如果您指定cv,您实际上将预构形k折CV,并且p参数将被忽略。因此,为了执行leave group out交叉验证,您必须指定method = "LGOCV",然后将使用p参数来确定训练/测试拆分比率。
https://stackoverflow.com/questions/65446015
复制相似问题