rsample 包包含一个用于引导的函数和另一个允许对数据组进行引导的函数。
分组版本要慢很多(~2000 倍)。我原以为它会慢一点,但我不明白为什么它慢那么多。
(我的示例中的组没有意义,但这应该与测试两个函数的速度无关。)
library(tidyverse)
library(rsample)
dat <- tibble(x = 1:1000)
microbenchmark::microbenchmark(
grouped = {
dat %>%
group_bootstraps(group = x, times = 10)},
simple = {
dat %>%
bootstraps(times = 10)},
times = 5)
我可以复制你的时间安排!
与其深入探讨减速的技术原因,不如思考以下几点:
library(tidyverse)
library(rsample)
data(ames, package = "modeldata")
set.seed(1)
microbenchmark::microbenchmark(
grouped = {
ames %>%
group_bootstraps(group = Neighborhood, times = 10)},
simple = {
ames %>%
bootstraps(times = 10)},
times = 5)
#> Unit: milliseconds
#> expr min lq mean median uq max neval
#> grouped 214.892521 217.795854 228.4819 219.397355 228.345646 261.97791 5
#> simple 4.314799 4.617092 4.6412 4.665144 4.775475 4.83349 5
#> cld
#> a
#> b
创建于 2024-05-16,使用 reprex v2.1.0
Simon,tidymodels 团队