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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。