如何使用 glmnet 的每折叠观察值预先计算 foldid
How to precompute foldid with even observations per fold for glmnet
根据glmnet vignette,一个foldid
可以设置为:
foldid=sample(1:10,size=length(y),replace=TRUE)
但是,如果您查看每个折叠中的观察次数:
> table(foldid)
foldid
1 2 3 4 5 6 7 8 9 10
10 12 8 7 12 12 8 7 14 10
分布不是很均匀。每次我用 cvm
/lambda.min
运行 cv.glmnet
和 foldid
通过上述方法预先计算时(在我自己的数据集上;n< 30), 并想尝试 foldid
观察分布更均匀。有人可以建议一种方法(代码)来做到这一点吗?
没关系。在 glmnet manual.
中找到了答案
(n = 100)
> foldid=sample(rep(seq(10),length=n))
> table(foldid)
foldid
1 2 3 4 5 6 7 8 9 10
10 10 10 10 10 10 10 10 10 10
所有的折叠都有相同的观察次数。
根据glmnet vignette,一个foldid
可以设置为:
foldid=sample(1:10,size=length(y),replace=TRUE)
但是,如果您查看每个折叠中的观察次数:
> table(foldid)
foldid
1 2 3 4 5 6 7 8 9 10
10 12 8 7 12 12 8 7 14 10
分布不是很均匀。每次我用 cvm
/lambda.min
运行 cv.glmnet
和 foldid
通过上述方法预先计算时(在我自己的数据集上;n< 30), 并想尝试 foldid
观察分布更均匀。有人可以建议一种方法(代码)来做到这一点吗?
没关系。在 glmnet manual.
中找到了答案(n = 100)
> foldid=sample(rep(seq(10),length=n))
> table(foldid)
foldid
1 2 3 4 5 6 7 8 9 10
10 10 10 10 10 10 10 10 10 10
所有的折叠都有相同的观察次数。