【R】交差検証用に検証用データのインデックスをリストで返す関数
交差検証を実施する際、データセットをn分割する必要があります。
そしてそれぞれが1回だけ検証用データとして扱われます。
以下の関数は、検証用データのインデックスをn個リストとして返す関数です。
dataが使用するデータセット、cv_nがn-fold Cross Validationをするときのnを意味しています。
create_cv_test_index <- function(data, cv_n=5){ idx <- seq(1, nrow(data)) n <- round(nrow(data)/cv_n) cv_idx_list <- list() for(i in 1:cv_n){ if(i != cv_n){ cv_idx_tmp <- sample(idx, size=n, replace=FALSE) cv_idx_list[[i]] <- cv_idx_tmp idx <- idx[!(idx %in% cv_idx_tmp)] } else { cv_idx_list[[i]] <- sample(idx, size=length(idx), replace=FALSE) } } return(cv_idx_list) }