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