gpt4 book ai didi

r - 生成集进行交叉验证

转载 作者:行者123 更新时间:2023-12-03 22:50:35 24 4
gpt4 key购买 nike

如何使用 R 自动拆分矩阵进行 5 折交叉验证?
我实际上想生成 5 组 (test_matrix_indices, train matrix_indices)。

最佳答案

我想您希望矩阵行成为要拆分的案例。那么您只需要samplesplit :

X <- matrix(rnorm(1000),ncol=5)
id <- sample(1:5,nrow(X),replace=TRUE)
ListX <- split(x,id) # gives you a list with the 5 matrices
X[id==2,] # gives you the second matrix

我会使用该列表,因为它允许您执行以下操作:
names(ListX) <- c("Train1","Train2","Train3","Test1","Test2")
mean(ListX$Train3)

这使代码更易于阅读,并防止您在工作区中创建大量矩阵。如果您将矩阵单独放在工作区中,您一定会搞砸。使用列表!

如果您希望测试矩阵比其他矩阵更小或更大,请使用 prob sample 的论据:
id <- sample(1:5,nrow(X),replace=TRUE,prob=c(0.15,0.15,0.15,0.15,0.3))

为您提供一个两倍于火车矩阵大小的测试矩阵。

如果您想确定案例的确切数量, sampleprob不是最好的选择。您可以使用以下技巧:
indices <- rep(1:5,c(100,20,20,20,40))
id <- sample(indices)

得到分别有 100、20、... 和 40 个案例的矩阵。

关于r - 生成集进行交叉验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7402313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com