使用 R 中的分组变量执行 v 折叠交叉验证

问题描述 投票:0回答:0

我有一个数据框如下:

set.seed(123)

data <- data.frame(
  label =c(rep(1,1),rep(2,10),seq(3,5),rep(6,3),seq(7,15),rep(16,10),rep(17,5),seq(18,100)),
  x = rnorm(124,0,1),
  y = rnorm(124,0.5,1)
)

我想在

vfold_cv
rsample
包中使用
R
函数创建折叠。但是属于同一标签的数据应该在同一折叠内。我使用了这段代码。

require(rsample)

set.seed(123)
fold_data=vfold_cv(data, strata = label, v=3)

但是我不知道如何检查具有相同标签的数据是否位于同一折叠中。你能帮我弄清楚吗?

谢谢

更新

我试过这个功能

fold_list=split(data, f=fold_data$id)

它给了我这个警告:

Warning message:
In split.default(x = seq_len(nrow(x)), f = f, drop = drop, ...) :
  data length is not a multiple of split variable

也没有按照我的需要拆分数据

所以谁能帮我弄清楚如何正确使用

vfold_cv

r machine-learning cross-validation
© www.soinside.com 2019 - 2024. All rights reserved.