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