集群#

参数#

#include

命名空间 cuvs::cluster::agglomerative

enum Linkage#

确定计算最小生成树(MST)的方法

值:

enumerator PAIRWISE#

使用成对距离矩阵作为mst的输入。这对于相当小的数据集(约50k数据点)非常快速且是最佳选择。

enumerator KNN_GRAPH#

构建一个KNN图作为mst的输入,并在mst不收敛时提供额外的边。这种方法较慢,但可以扩展到非常大的数据集。

单链接#

include

命名空间 cuvs::cluster::agglomerative

void single_linkage(raft::resources const &handle, raft::device_matrix_view<const float, int, raft::row_major> X, raft::device_matrix_view<int, int, raft::row_major> dendrogram, raft::device_vector_view<int, int> labels, cuvs::distance::DistanceType metric, size_t n_clusters, cuvs::cluster::agglomerative::Linkage linkage = cuvs::cluster::agglomerative::Linkage::KNN_GRAPH, std::optional<int> c = std::make_optional<int>(DEFAULT_CONST_C))#

单链接聚类,能够构建一个KNN图,以扩展算法,使其超越使用完全连接图对距离的实现的n^2内存消耗,通过在k不够大时连接knn图来实现。

Parameters:
  • handle[in] raft 句柄

  • X[in] 行主序布局的密集输入矩阵

  • dendrogram[out] 输出的树状图(大小为 [n_rows - 1] * 2)

  • labels[out] 输出标签向量(大小为 n_rows)

  • metric[in] 用于构建连接图的距离度量

  • n_clusters[in] 要分配给数据样本的簇的数量

  • linkage[in] 构建链接的策略。PAIRWISE 使用更多内存,但对于较小的数据集可能更快。KNN_GRAPH 允许控制内存使用(使用参数 c),但可能会增加最小生成树的迭代次数。

  • c[输入] 用于从knn图构建链接时的常数。允许间接控制k。算法将设置 k = log(n) + c