当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R rsample mc_cv 蒙特卡罗交叉验证


蒙特卡洛交叉验证的一次重采样采用原始数据集的随机样本(无替换)用于分析。所有其他数据点都添加到评估集中。

用法

mc_cv(data, prop = 3/4, times = 25, strata = NULL, breaks = 4, pool = 0.1, ...)

参数

data

一个 DataFrame 。

prop

为建模/分析而保留的数据比例。

times

重复采样的次数。

strata

data 中的变量(单个字符或名称)用于进行分层抽样。如果不是 NULL ,则每次重新采样都会在分层变量中创建。数字 strata 被分为四分位数。

breaks

给出对数值分层变量进行分层所需的箱数的单个数字。

pool

用于确定特定组是否太小的数据比例,是否应合并到另一个组中。我们不建议将此参数降低到默认值 0.1 以下,因为分层组太小存在危险。

...

这些点用于将来的扩展,并且必须为空。

带有类 mc_cvrsettbl_dftbldata.frame 的 tibble。结果包括数据分割对象的列和名为 id 的列,其中包含带有重采样标识符的字符串。

细节

使用 strata 参数,在分层变量内进行随机抽样。这有助于确保重采样与原始数据集具有相同的比例。对于分类变量,采样是在每个类别内单独进行的。对于数字分层变量,strata 被分为四分位数,然后用于分层。低于总数10%的地层合并在一起;有关更多详细信息,请参阅make_strata()

例子

mc_cv(mtcars, times = 2)
#> # Monte Carlo cross-validation (0.75/0.25) with 2 resamples  
#> # A tibble: 2 × 2
#>   splits         id       
#>   <list>         <chr>    
#> 1 <split [24/8]> Resample1
#> 2 <split [24/8]> Resample2
mc_cv(mtcars, prop = .5, times = 2)
#> # Monte Carlo cross-validation (0.5/0.5) with 2 resamples  
#> # A tibble: 2 × 2
#>   splits          id       
#>   <list>          <chr>    
#> 1 <split [16/16]> Resample1
#> 2 <split [16/16]> Resample2

library(purrr)
data(wa_churn, package = "modeldata")

set.seed(13)
resample1 <- mc_cv(wa_churn, times = 3, prop = .5)
map_dbl(
  resample1$splits,
  function(x) {
    dat <- as.data.frame(x)$churn
    mean(dat == "Yes")
  }
)
#> [1] 0.2709458 0.2621414 0.2632775

set.seed(13)
resample2 <- mc_cv(wa_churn, strata = churn, times = 3, prop = .5)
map_dbl(
  resample2$splits,
  function(x) {
    dat <- as.data.frame(x)$churn
    mean(dat == "Yes")
  }
)
#> [1] 0.2652655 0.2652655 0.2652655

set.seed(13)
resample3 <- mc_cv(wa_churn, strata = tenure, breaks = 6, times = 3, prop = .5)
map_dbl(
  resample3$splits,
  function(x) {
    dat <- as.data.frame(x)$churn
    mean(dat == "Yes")
  }
)
#> [1] 0.2636364 0.2599432 0.2576705
源代码:R/mc.R

相关用法


注:本文由纯净天空筛选整理自Hannah Frick等大神的英文原创作品 Monte Carlo Cross-Validation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。