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


R spatialsample spatial_vfold 带缓冲的 V 形折叠交叉验证


V-fold 交叉验证(也称为 k-fold 交叉验证)将数据随机分成大小大致相等的 V 组(称为 "folds")。分析数据的重采样由 V-1 个折叠组成,而评估集包含最终折叠。这些函数扩展了rsample::vfold_cv()rsample::group_vfold_cv(),以将包含半径和排除缓冲区应用于评估集,确保您的分析数据在空间上与评估集分离。在基本的 V-fold 交叉验证(即无重复)中,重新采样的次数等于 V。

用法

spatial_buffer_vfold_cv(
  data,
  radius,
  buffer,
  v = 10,
  repeats = 1,
  strata = NULL,
  breaks = 4,
  pool = 0.1,
  ...
)

spatial_leave_location_out_cv(
  data,
  group,
  v = NULL,
  radius = NULL,
  buffer = NULL,
  ...,
  repeats = 1
)

参数

data

一个 DataFrame 。

radius

数字:initially-selected 测试点的此距离内的点将被分配到评估集。如果 NULL ,则不应用半径。

buffer

数字:测试集中任何点的此距离内的点(应用 radius 后)将不会分配给分析集或评估集。如果 NULL ,则不应用缓冲区。

v

重采样的分区数。设置为 NULLInf 作为最大合理值(用于 leave-one-X-out 交叉验证)。

repeats

重复 V-fold 分区的次数。

strata

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

breaks

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

pool

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

...

目前未使用。

group

用于创建折叠的数据变量(单个字符或名称)。对于leave-location-out CV,这应该是一个变量,其中包含用于对观测进行分组的位置,对于leave-time-out CV,该变量应包含用于分组的时间块,而对于leave-location-and-time-out,则应包含用于分组的时空块。

细节

radiusbuffer都是NULL时,spatial_buffer_vfold_cv相当于rsample::vfold_cv()spatial_leave_location_out_cv相当于rsample::group_vfold_cv()

参考

K. Le Rest、D. Pinaud、P. Monestiez、J. Chadoeuf 和 C. Bretagnolle。 2014.“存在空间自相关的情况下变量选择的空间留一交叉验证”,全局生态学和生物地理学 23,第 811-820 页,doi:10.1111/geb.12161。

H. Meyer、C. Reudenbach、T. Hengl、M. Katurji 和 T. Nauss。 2018 年。“使用前向特征选择和 target-oriented 验证提高 spatio-temporal 机器学习模型的性能”,环境建模和软件 101,第 1-9 页,doi:10.1016/j.envsoft.2017.12.001。

例子


data(Smithsonian, package = "modeldata")
Smithsonian_sf <- sf::st_as_sf(
  Smithsonian,
  coords = c("longitude", "latitude"),
  crs = 4326
)

spatial_buffer_vfold_cv(
  Smithsonian_sf,
  buffer = 500,
  radius = NULL
)
#> #  10-fold spatial cross-validation 
#> # A tibble: 10 × 2
#>    splits         id    
#>    <list>         <chr> 
#>  1 <split [11/2]> Fold01
#>  2 <split [12/2]> Fold02
#>  3 <split [12/2]> Fold03
#>  4 <split [18/2]> Fold04
#>  5 <split [14/2]> Fold05
#>  6 <split [17/2]> Fold06
#>  7 <split [18/2]> Fold07
#>  8 <split [13/2]> Fold08
#>  9 <split [11/2]> Fold09
#> 10 <split [17/2]> Fold10

data(ames, package = "modeldata")
ames_sf <- sf::st_as_sf(ames, coords = c("Longitude", "Latitude"), crs = 4326)
ames_neighborhoods <- spatial_leave_location_out_cv(ames_sf, Neighborhood)

相关用法


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