聚类

聚类

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

可扩展的 KMeans 用于聚类

SpectralClustering([n_clusters, ...])

应用并行谱聚类

The 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 imes 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 在样本数量上的扩展性。