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


R rsample clustering_cv 集群交叉驗證


集群交叉驗證使用一些變量的 k-means 聚類將數據分成 V 組不相交的集合。分析數據的重采樣由 V-1 的折疊/簇組成,而評估集包含最終的折疊/簇。在基本交叉驗證(即無重複)中,重采樣的數量等於 V。

用法

clustering_cv(
  data,
  vars,
  v = 10,
  repeats = 1,
  distance_function = "dist",
  cluster_function = c("kmeans", "hclust"),
  ...
)

參數

data

一個 DataFrame 。

vars

用於對數據進行聚類的裸變量名稱向量。

v

數據集的分區數。

repeats

重複集群分區的次數。

distance_function

應該使用哪個函數來計算距離?默認為 stats::dist() 。您也可以提供自己的函數;請參閱Details

cluster_function

應該使用哪個函數進行聚類?選項為 "kmeans" (使用 stats::kmeans() )或 "hclust" (使用 stats::hclust() )。您也可以提供自己的函數;請參閱Details

...

額外的參數傳遞給 cluster_function

帶有類 rsettbl_dftbldata.frame 的 tibble。結果包括數據分割對象的列和標識變量 id

細節

vars 參數中的變量用於將數據 k-means 聚類為不相交的集合或用於數據的分層聚類。這些簇用作交叉驗證的折疊。根據數據的分布方式,每次折疊中的點數量可能不同。

您可以選擇向 distance_function 提供自定義函數。該函數應獲取一個 DataFrame (通過 data[vars] 創建)並返回一個帶有數據點之間距離的 stats::dist() 對象。

您可以選擇向 cluster_function 提供自定義函數。該函數必須采用三個參數:

  • dists ,一個帶有數據點之間距離的 stats::dist() 對象

  • v ,一個長度為 1 的數字,表示要創建的折疊數

  • ... ,將任何其他命名參數傳遞給您的函數

該函數應返回長度為 nrow(data) 的簇分配向量,向量的每個元素對應於數據幀的匹配行。

例子

data(ames, package = "modeldata")
clustering_cv(ames, vars = c(Sale_Price, First_Flr_SF, Second_Flr_SF), v = 2)
#> # 2-cluster cross-validation 
#> # A tibble: 2 × 2
#>   splits             id   
#>   <list>             <chr>
#> 1 <split [441/2489]> Fold1
#> 2 <split [2489/441]> Fold2
源代碼:R/clustering.R

相關用法


注:本文由純淨天空篩選整理自Hannah Frick等大神的英文原創作品 Cluster Cross-Validation。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。