空間聚類交叉驗證通過基於空間坐標的聚類點將數據分成 V 組不相交的集合。分析數據的重采樣由 V-1 的折疊/簇組成,而評估集包含最終的折疊/簇。
用法
spatial_clustering_cv(
data,
v = 10,
cluster_function = c("kmeans", "hclust"),
radius = NULL,
buffer = NULL,
...,
repeats = 1,
distance_function = function(x) as.dist(sf::st_distance(x))
)
參數
- data
-
將
sf
對象(通常來自sf::read_sf()
或sf::st_as_sf()
)拆分為折疊。 - v
-
數據集的分區數。
- cluster_function
-
應該使用哪個函數進行聚類?選項為
"kmeans"
(使用stats::kmeans()
)或"hclust"
(使用stats::hclust()
)。您也可以提供自己的函數;請參閱Details
。 - radius
-
數字:initially-selected 測試點的此距離內的點將被分配到評估集。如果
NULL
,則不應用半徑。 - buffer
-
數字:測試集中任何點的此距離內的點(應用
radius
後)將不會分配給分析集或評估集。如果NULL
,則不應用緩衝區。 - ...
-
額外的參數傳遞給
stats::kmeans()
或stats::hclust()
。 - repeats
-
重複集群分區的次數。
- distance_function
-
應該使用哪個函數來計算距離?默認為
sf::st_distance()
,輸出矩陣轉換為stats::dist()
對象。您也可以提供自己的函數;查看具體信息。
值
帶有類 spatial_clustering_cv
、 spatial_rset
、 rset
、 tbl_df
、 tbl
和 data.frame
的 tibble。結果包括數據分割對象的列和標識變量 id
。從非 sf
對象創建的重新采樣將不具有 spatial_rset
類。
細節
如果 data
是 sf
對象,則根據觀測值之間的距離創建聚類。每個簇都用作交叉驗證的折疊。根據數據在空間上的分布方式,每個折疊中的觀測值數量可能不相等。
您可以選擇向 distance_function.
提供自定義函數。該函數應采用 sf
對象並返回帶有數據點之間距離的 stats::dist()
對象。
您可以選擇向 cluster_function
提供自定義函數。該函數必須采用三個參數:
-
dists
,一個帶有數據點之間距離的stats::dist()
對象 -
v
,一個長度為 1 的數字,表示要創建的折疊數 -
...
,將任何其他命名參數傳遞給您的函數
該函數應返回長度為 nrow(data)
的簇分配向量,向量的每個元素對應於數據幀的匹配行。
空間樣本 0.3.0 的變化
從 Spatialsample 版本 0.3.0 開始,此函數不再接受非 sf
對象作為 data
的參數。為了使用非空間數據執行聚類,請考慮使用 rsample::clustering_cv()
。
同樣從版本 0.3.0 開始,此函數現在計算非點幾何圖形的 edge-to-edge 距離,與包的其餘部分一致。早期版本依賴於 between-centroid 距離。
參考
A. Brenning,“遙感預測規則評估的空間交叉驗證和引導程序:R 包 sperrorest”,2012 年 IEEE 國際地球科學和遙感研討會,慕尼黑,2012 年,第 5372-5375 頁,doi:10.1109/IGARSS.2012.6352393。
例子
data(Smithsonian, package = "modeldata")
smithsonian_sf <- sf::st_as_sf(
Smithsonian,
coords = c("longitude", "latitude"),
# Set CRS to WGS84
crs = 4326
)
# When providing sf objects, coords are inferred automatically
spatial_clustering_cv(smithsonian_sf, v = 5)
#> # 5-fold spatial cross-validation
#> # A tibble: 5 × 2
#> splits id
#> <list> <chr>
#> 1 <split [18/2]> Fold1
#> 2 <split [16/4]> Fold2
#> 3 <split [9/11]> Fold3
#> 4 <split [18/2]> Fold4
#> 5 <split [19/1]> Fold5
# Can use hclust instead:
spatial_clustering_cv(smithsonian_sf, v = 5, cluster_function = "hclust")
#> # 5-fold spatial cross-validation
#> # A tibble: 5 × 2
#> splits id
#> <list> <chr>
#> 1 <split [19/1]> Fold1
#> 2 <split [4/16]> Fold2
#> 3 <split [19/1]> Fold3
#> 4 <split [19/1]> Fold4
#> 5 <split [19/1]> Fold5
相關用法
- R spatialsample spatial_nndm_cv 最近鄰距離匹配 (NNDM) 交叉驗證
- R spatialsample spatial_block_cv 空間塊交叉驗證
- R spatialsample spatial_vfold 帶緩衝的 V 形折疊交叉驗證
- 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等大神的英文原創作品 Spatial Clustering Cross-Validation。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。