sklearn.cluster.spectral_clustering

sklearn.cluster.spectral_clustering(affinity, *, n_clusters=8, n_components=None, eigen_solver=None, random_state=None, n_init=10, eigen_tol=0.0, assign_labels='kmeans')

[源码]

将聚类应用于归一化Laplacian的投影。

在实际应用中,光谱聚类是非常有用的,当单个簇的结构是高度非凸的,或者更普遍地说,当簇的中心和扩展的度量并不适合描述完整的聚类时,光谱聚类是非常有用的。例如,当簇是二维平面上的嵌套圆时。

如果亲和度是图的邻接矩阵,则该方法可用于求图的归一化割集。

用户指南中阅读更多内容。

参数 说明
affinity array-like or sparse matrix, shape: (n_samples, n_samples)
描述嵌入样本之间关系的亲和矩阵。必须是对称的

可能的例子:
- 图的邻接矩阵
- 样本成对距离矩阵的热核
- 样本的对称k近邻连通矩阵
n_clusters integer, optional
要提取的聚类数
n_components integer, optional, default=n_clusters
用于光谱嵌入的特征向量数
eigen_solver {None, ‘arpack’, ‘lobpcg’, or ‘amg’}
特征值分解策略的应用。AMG需要安装pyamg。它可以在非常大的稀疏问题上更快,但也可能导致不稳定。
random_state int, RandomState instance, default=None
一种用于Lobpcg特征向量分解初始化的伪随机数发生器,当eigen_solver='amg', 通过K-Means初始化。使用int使随机性确定性。见Glossary
n_init int, optional, default: 10
k均值算法将使用不同的质心种子运行次数。最后的结果将是n_init连续运行的最佳inertia输出。
eigen_tol float, optional, default: 0.0
Laplacian矩阵特征点的停止准则, 当eigen_solver='arpack'
assign_labels {‘kmeans’, ‘discretize’}, default: ‘kmeans’
在嵌入空间中分配标签的策略。在Laplacian嵌入之后,有两种分配标签的方法。k-means可以应用,是一种很受欢迎的选择。但是它对初始化也很敏感。离散化是另一种对随机初始化不那么敏感的方法。有关离散化方法的更多细节,请参见下文引用的‘Multiclass spectral clustering’论文。

注意

图表应该只包含一个连接组件,其他地方的结果没有什么意义。

该算法解决了k=2的归一化割集问题:它是一种归一化光谱聚类。

参考

Normalized cuts and image segmentation, 2000 Jianbo Shi, Jitendra Malikhttp://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.160.2324

A Tutorial on Spectral Clustering, 2007 Ulrike von Luxburghttp://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.165.9323

Multiclass spectral clustering, 2003 Stella X. Yu, Jianbo Shihttps://www1.icsi.berkeley.edu/~stellayu/publication/doc/2003kwayICCV.pdf