聚类#
参数#
#include <cuvs/cluster/agglomerative.hpp>
namespace cuvs::cluster::agglomerative
单链接聚类#
include <cuvs/cluster/agglomerative.hpp>
namespace 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 图来实现。
- 参数:
handle – [in] raft handle
X – [in] 行主序的密集输入矩阵
dendrogram – [out] 输出树状图 (大小 [n_rows - 1] * 2)
labels – [out] 输出标签向量 (大小 n_rows)
metric – [in] 构建连通图时使用的距离度量
n_clusters – [in] 要分配数据样本的聚类数量
linkage – [in] 构建链接策略。PAIRWISE 使用更多内存,但对于较小数据集可能更快。KNN_GRAPH 允许控制内存使用(使用参数 c),代价是可能需要额外的最小生成树迭代。
c – [in] 从 knn 图构建链接时使用的常数。允许间接控制 k。算法将设置
k = log(n) + c