目录

聚类

目录

聚类

KMeans([n_clusters, init, ...])

用于聚类的可扩展 KMeans

SpectralClustering([n_clusters, ...])

应用并行谱聚类

模块 dask_ml.cluster 实现了几种用于对无标签数据进行聚类的算法。

谱聚类

谱聚类在样本间的亲和矩阵上找到一个低维嵌入。然后对嵌入后的数据集进行聚类,通常使用 KMeans。

通常,谱聚类算法的可伸缩性不佳。当样本数量很大时,计算 \(n\_samples \times n\_samples\) 的亲和矩阵会变得非常昂贵。已经提出了几种算法来解决这一限制。

dask-ml 中,我们使用 Nyström 方法来近似大型亲和矩阵。这涉及从整个训练集中采样 n_components 行。对这个子集( \(n\_components \times n\_components\) )以及这个小部分子集与其余数据( \(n\_components \times (n\_samples - n\_components)\) )之间计算精确的亲和度。我们避免了直接计算亲和矩阵的其余部分。

\(S\) 为我们的 \(n \times n\) 亲和矩阵。我们可以将其重写为

\[\begin{split}S_d = \left[ \begin{array}\ A & B \\ B^T & C \\ \end{array} \right]\end{split}\]

其中 \(A\) 是我们采样的 \(n\_components\)\(n \times n\) 亲和矩阵,\(B\) 是样本与数据集其余部分之间的 \(n \times (n - n\_components)\) 亲和矩阵。我们不直接计算 \(C\),而是用 \(B^T A^{-1} B\) 来近似它。

参见 谱聚类基准测试,查看 dask_ml.cluster.SpectralClustering 算法在样本数量增加时的可伸缩性示例。