七、SpectralClustering
SpectralClustering
是scikit-learn
给出的谱聚类模型。其原型为class sklearn.cluster.SpectralClustering(n_clusters=8, eigen_solver=None,
random_state=None, n_init=10, gamma=1.0, affinity='rbf', n_neighbors=10,
eigen_tol=0.0, assign_labels='kmeans', degree=3, coef0=1, kernel_params=None,
n_jobs=None)
n_clusters
:一个整数,指定降维的维数,即 。eigen_solver
:一个字符串或者None
,指定求解特征值的求解器。可以为:'arpack'
:使用arpack
求解器。'lobpcg'
:使用lobpcg
求解器。'amg'
:使用amg
求解器。它要求安装pyamg
。优点是计算速度快,支持大规模、稀疏数据,但是可能导致不稳定。
random_state
:指定随机数种子。n_init
:一个整数,指定二次聚类时的k-means
算法的n_init
参数,它会重复执行k-means
算法n_init
轮,选择效果最好的那轮作为最终聚类的输出。affinity
:一个字符串、数组或者可调用对象,指定相似度矩阵的计算方式。- 如果是字符串,则必须是
'nearest_neighbors'
、'precomputed'
、'rbf'
、或者由sklearn.metrics.pairwise_kernels
支持的其它核函数。 - 如果是一个数组,则直接给出相似度矩阵。
- 如果是可调用对象,则输入两个样本,输出其相似度。
- 如果是字符串,则必须是
gamma
:一个浮点数,它给出了rbf,poly,sigmoid,laplacian,chi2
核的系数。如果
affinity='nearest_neighbors'
,则忽略该参数。degree
:一个整数,当使用多项式核时,指定多项式的度。coef0
:一个整数,当使用多项式核和sigmoid
核时,指定偏置。kernel_params
:一个字典,当affinity
是可调用对象时,传给该可调用对象的关键词参数。n_neighbors
:一个整数,指定当计算相似度矩阵时,考虑样本周围近邻的多少个样本。如果
affinity='rbf'
,则忽略该参数。eigen_tol
:一个浮点数,当使用arpack
求解器求解特征值时,指定收敛阈值。assign_labels
:一个字符串,指定二次聚类的算法。'kmeans'
:使用k-means
算法执行二次聚类。'discretize'
:使用discretize
执行二次聚类。
n_jobs
:指定并行度。
属性:
affinity_matrix
:一个形状为(n_samples,n_samples)
的数组,给出了相似度矩阵。labels_
:一个形状为(n_samples,)
的数组,给出了每个样本的簇标记。
方法:
fit(X[,y])
:训练模型。fit_predict(X[, y])
:训练模型并执行聚类,返回每个样本所属的簇标记。