【发布时间】:2016-11-23 13:37:41
【问题描述】:
Hadley Wickham proposed 可以使用dplyr 包进行引导,他的建议是was improved 然后implemented in broom package。是否也可以实现k-fold交叉验证?
我猜第一步(选择train组)很简单:
crossvalidate <- function (df, k = 5) {
n <- nrow(df)
idx <- sample(rep_len(1:k, n))
attr(df, "indices") <- lapply(1:k, function(i) which(idx != i))
attr(df, "drop") <- TRUE
attr(df, "group_sizes") <- nrow(df) - unclass(table(idx))
attr(df, "biggest_group_size") <- max(attr(df, "group_sizes"))
attr(df, "labels") <- data.frame(replicate = 1:k)
attr(df, "vars") <- list(quote(replicate))
class(df) <- c("grouped_df", "tbl_df", "tbl", "data.frame")
df
}
但不知何故,我在任何地方都找不到attr(, "indices") 的任何文档来了解是否可以使用索引“其他” 选择用于选择测试的索引组索引。你有什么想法?
【问题讨论】:
-
你应该看看
modelr,Hadley 的带有crossv_kfold函数的包。