SpectralCoclustering#
- class sklearn.cluster.SpectralCoclustering(n_clusters=3, *, svd_method='randomized', n_svd_vecs=None, mini_batch=False, init='k-means++', n_init=10, random_state=None)[source]#
谱协同聚类算法 (Dhillon, 2001)。
通过解决从
X
创建的二部图的松弛归一化割问题,对数组X
的行和列进行聚类,其中行顶点i
和列顶点j
之间的边权重为X[i, j]
。生成的双聚类结构是分块对角线的,因为每行和每列都恰好属于一个双聚类。
支持稀疏矩阵,前提是非负。
更多信息请参阅用户指南。
- 参数:
- n_clustersint, 默认为 3
要查找的双聚类数量。
- svd_method{‘randomized’, ‘arpack’},默认为 ‘randomized’
选择用于查找奇异向量的算法。可以是 'randomized' 或 'arpack'。如果为 'randomized',则使用
sklearn.utils.extmath.randomized_svd
,这对于大型矩阵可能更快。如果为 'arpack',则使用scipy.sparse.linalg.svds
,它更准确,但在某些情况下可能更慢。- n_svd_vecsint, 默认为 None
计算 SVD 时使用的向量数量。当
svd_method=arpack
时对应于ncv
,当svd_method
为 'randomized' 时对应于n_oversamples
。- mini_batchbool, 默认为 False
是否使用 Mini-Batch k-means,它更快,但可能获得不同的结果。
- init{‘k-means++’, ‘random’},或形状为 (n_clusters, n_features) 的 ndarray,默认为 ‘k-means++’
k-means 算法的初始化方法;默认为 'k-means++'。
- n_initint, 默认为 10
k-means 算法尝试的随机初始化次数。
如果使用 Mini-Batch k-means,则选择最佳初始化并运行算法一次。否则,算法对每次初始化都运行,并选择最佳解决方案。
- random_stateint, RandomState 实例,默认为 None
用于奇异值分解和 k-means 初始化的随机化。使用整数使随机性确定。请参阅术语表。
- 属性:
- rows_形状为 (n_row_clusters, n_rows) 的 array-like
聚类结果。
rows[i, r]
为 True 表示聚类i
包含行r
。仅在调用fit
后可用。- columns_形状为 (n_column_clusters, n_columns) 的 array-like
聚类结果,类似于
rows
。- row_labels_形状为 (n_rows,) 的 array-like
每行的双聚类标签。
- column_labels_形状为 (n_cols,) 的 array-like
每列的双聚类标签。
biclusters_
两个 ndarray 的元组方便地同时获取行和列指标。
- n_features_in_int
在 fit 期间看到的特征数量。
0.24 版本新增。
- feature_names_in_形状为 (
n_features_in_
,) 的 ndarray 在 fit 期间看到的特征名称。仅当
X
的所有特征名称均为字符串时定义。1.0 版本新增。
另请参阅
SpectralBiclustering
在数据具有底层棋盘结构假设下划分行和列。
参考文献
示例
>>> from sklearn.cluster import SpectralCoclustering >>> import numpy as np >>> X = np.array([[1, 1], [2, 1], [1, 0], ... [4, 7], [3, 5], [3, 6]]) >>> clustering = SpectralCoclustering(n_clusters=2, random_state=0).fit(X) >>> clustering.row_labels_ array([0, 1, 1, 0, 0, 0], dtype=int32) >>> clustering.column_labels_ array([0, 0], dtype=int32) >>> clustering SpectralCoclustering(n_clusters=2, random_state=0)
有关更详细的示例,请参阅:谱协同聚类算法演示。
- fit(X, y=None)[source]#
为 X 创建双聚类。
- 参数:
- X形状为 (n_samples, n_features) 的 array-like
训练数据。
- y忽略
未使用,按惯例为 API 一致性而存在。
- 返回:
- selfobject
SpectralBiclustering 实例。
- get_indices(i)[source]#
第
i
个双聚类的行和列索引。仅当
rows_
和columns_
属性存在时才有效。- 参数:
- iint
聚类的索引。
- 返回:
- row_indndarray, dtype=np.intp
数据集中属于该双聚类的行索引。
- col_indndarray, dtype=np.intp
数据集中属于该双聚类的列索引。
- get_metadata_routing()[source]#
获取此对象的元数据路由。
请查阅用户指南了解路由机制的工作原理。
- 返回:
- routingMetadataRequest
封装路由信息的
MetadataRequest
实例。
- get_params(deep=True)[source]#
获取此估计器的参数。
- 参数:
- deepbool, 默认为 True
如果为 True,将返回此估计器及其包含的作为估计器的子对象的参数。
- 返回:
- paramsdict
参数名称及其对应的值。