首页 > 解决方案 > 如果我在 R 中使用 5 k-fold,模型训练多少次?

问题描述

ctrlspecs <- trainControl(method = "repeatedcv", number = 5, repeated = 5) 

我使用repeatcv方法并将数字设置为5并重复为5。数字= 5。这是否意味着 5k 倍?如果那样的话,我认为训练和测试的模型数量是5。对吗?

我还将重复设置为 5。这是否意味着 trainControl 将重复 5 次?

这是否意味着训练和测试的总数为 25?

标签: rcross-validationk-fold

解决方案


为了回答您的问题,下面我尝试解释 k-fold 和重复 k-fold cv 的概念。当您在 k-fold cv 中设置 k = 5 时,它会将样本随机划分为 5 个组/簇(大小大致相等),然后通过训练其他 4 (k-1) 个组每次预测 1 个组。最终的预测性能将是 5 次预测的平均值。在重复的 k-fold cv 中,它将按照您设置的时间重复上述 k-fold cv。现在回到您的问题, numbers = 5 将执行 5 倍 cv,repeat = 5 将重复 5 倍 cv 5 次。总的来说,您的最终结果将是 25 个预测的平均值 (5 x 5)。这是与此软件包相关的文档,可能有用(例如,第 5.3 节)https://topepo.github.io/caret/model-training-and-tuning.html#model-training-and-parameter-tuning.


推荐阅读