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
-
重采样的分区数。设置为
NULL
或Inf
作为最大合理值(用于 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,则应包含用于分组的时空块。
细节
当radius
和buffer
都是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)
相关用法
- R spatialsample spatial_clustering_cv 空间聚类交叉验证
- R spatialsample spatial_nndm_cv 最近邻距离匹配 (NNDM) 交叉验证
- R spatialsample spatial_block_cv 空间块交叉验证
- R spatialsample autoplot.spatial_rset 创建用于空间重采样的 ggplot。
- R variogram 计算空间变异函数
- R anova.trls 用于拟合趋势表面对象的方差分析表
- R Kfn 计算点模式的 K-fn
- R Kenvl 计算 K-fns 模拟的包络和平均值
- R correlogram 计算空间相关图
- R trmat 评估网格上的趋势面
- R Kaver 模拟的平均 K 函数
- R semat 评估网格预测的克里金标准误差
- R surf.ls 通过最小二乘法拟合趋势面
- R ppgetregion 获取空间点模式分析的域
- R pplik Strauss空间点过程的伪似然估计
- R surf.gls 通过广义最小二乘法拟合趋势面
- R ppregion 设置空间点模式分析的域
- R Strauss 模拟施特劳斯空间点过程
- R prmat 评估网格上的克里金曲面
- R ppinit 从文件中读取点过程对象
- R trls.influence 趋势面的回归诊断
- R SSI 模拟连续空间抑制点过程
- R predict.trls 趋势曲面拟合的预测方法
- R expcov 空间协方差函数
- R Psim 模拟二项式空间点过程
注:本文由纯净天空筛选整理自Michael Mahoney等大神的英文原创作品 V-Fold Cross-Validation with Buffering。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。