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


R spatialsample spatial_nndm_cv 最近邻距离匹配 (NNDM) 交叉验证


NNDM 是留一交叉验证的一种变体,它将每个观察值分配给单个评估折叠,然后尝试从每个分析折叠中删除数据,直到评估折叠和分析折叠之间的最近邻距离分布与最近邻距离分布匹配训练数据和模型将用于预测的位置之间的关系。由 Milà 等人提出。 (2022),该方法旨在准确估计模型在其实际预测的位置上的表现。该方法最初是在 CAST 包中实现的。

用法

spatial_nndm_cv(
  data,
  prediction_sites,
  ...,
  autocorrelation_range = NULL,
  prediction_sample_size = 1000,
  min_analysis_proportion = 0.5
)

参数

data

sfsfc 的对象。

prediction_sites

说明要预测的区域的 sfsfc 对象。如果prediction_sites都是点,那么在计算目标最近邻距离时,这些点将被视为预期预测点。如果 prediction_sites 的任何元素不是单个点,则从 prediction_sites 的边界框内对点进行采样,然后将这些点用作预期预测点。

...

传递给 sf::st_sample() 的其他参数。请注意,采样点数由 prediction_sample_size 控制;尝试通过 ... 传递 size 将导致错误。

autocorrelation_range

长度为 1 的数字,表示景观自相关范围(Milà 等人 (2022) 术语中的"phi")。如果默认为 NULL ,则自相关范围假定为 prediction_sites 边界框对角之间的距离。

prediction_sample_size

长度为1的数字:当prediction_sites不仅仅由点组成时,要采样的点数。请注意,此参数传递给 sf::st_sample() 中的 size ,这意味着 ... 中的任何元素都不能命名为 size

min_analysis_proportion

删除点以匹配最近邻居距离后必须保留的 data 的最小比例。一旦分析集中仅保留min_analysis_proportion原始数据,此函数将停止从分析集中删除数据,即使分析集和评估集之间的最近邻距离仍然低于训练位置和预测位置之间的距离。

带有类 spatial_nndm_cvspatial_rsetrsettbl_dftbldata.frame 的 tibble。结果包括数据分割对象的列和标识变量 id

细节

请注意,作为留一法交叉验证的一种形式,对于较大的数据,此方法可能相当慢(并且将模型拟合到这些重采样会更慢)。

参考

C. Milà、J. Mateu、E. Pebesma 和 H. Meyer。 2022.“用于Map验证的最近邻距离匹配留一交叉验证”。生态学和进化方法 2022:13,第 1304-1316 页。doi:10.1111/2041-210X.13851。

H.迈耶和E.佩贝斯玛。 2022年。“基于机器学习的生态变量全局Map以及评估它们的挑战。” 《自然通讯》13,第 2208 页。doi:10.1038/s41467-022-29838-9。

例子

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

# Using a small subset of the data, to make the example run faster:
spatial_nndm_cv(ames_sf[1:100, ], ames_sf[2001:2100, ])
#> # A tibble: 100 × 2
#>    splits         id     
#>    <list>         <chr>  
#>  1 <split [50/1]> Fold001
#>  2 <split [83/1]> Fold002
#>  3 <split [50/1]> Fold003
#>  4 <split [50/1]> Fold004
#>  5 <split [50/1]> Fold005
#>  6 <split [50/1]> Fold006
#>  7 <split [50/1]> Fold007
#>  8 <split [76/1]> Fold008
#>  9 <split [86/1]> Fold009
#> 10 <split [88/1]> Fold010
#> # ℹ 90 more rows

相关用法


注:本文由纯净天空筛选整理自Michael Mahoney等大神的英文原创作品 Nearest neighbor distance matching (NNDM) cross-validation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。