當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。