首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >trainControl中的p参数

trainControl中的p参数
EN

Stack Overflow用户
提问于 2020-12-25 15:08:49
回答 1查看 148关注 0票数 2

在插入符号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折交叉验证?

EN

回答 1

Stack Overflow用户

发布于 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参数来确定训练/测试拆分比率。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65446015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档