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


R modelr crossv_mc 生成測試訓練對以進行交叉驗證

crossv_kfold 將數據拆分為k 獨占分區,並使用每個分區進行test-training 拆分。 crossv_mc 生成 n 隨機分區,保留 test 數據用於訓練。 crossv_loo 執行留一交叉驗證,即 n = nrow(data) 訓練分區每個包含 n - 1 行。

用法

crossv_mc(data, n, test = 0.2, id = ".id")

crossv_kfold(data, k = 5, id = ".id")

crossv_loo(data, id = ".id")

參數

data

一個 DataFrame

n

要生成的 test-training 對的數量(整數)。

test

應保留用於測試的觀測值比例(雙倍)。

id

為每個模型提供唯一整數 ID 的變量名稱。

k

折疊次數(整數)。

具有列 testtrain.id 的 DataFrame 。 testtrain 是包含 resample() 對象的列表列。行數為 n(對於 crossv_mc())、k(對於 crossv_kfold())

nrow(data)crossv_loo()

例子

cv1 <- crossv_kfold(mtcars, 5)
cv1
#> # A tibble: 5 × 3
#>   train                test                .id  
#>   <named list>         <named list>        <chr>
#> 1 <resample [25 x 11]> <resample [7 x 11]> 1    
#> 2 <resample [25 x 11]> <resample [7 x 11]> 2    
#> 3 <resample [26 x 11]> <resample [6 x 11]> 3    
#> 4 <resample [26 x 11]> <resample [6 x 11]> 4    
#> 5 <resample [26 x 11]> <resample [6 x 11]> 5    

library(purrr)
cv2 <- crossv_mc(mtcars, 100)
models <- map(cv2$train, ~ lm(mpg ~ wt, data = .))
errs <- map2_dbl(models, cv2$test, rmse)
hist(errs)

相關用法


注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Generate test-training pairs for cross-validation。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。