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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。