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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。