SpectralBiclustering#
- class sklearn.cluster.SpectralBiclustering(n_clusters=3, *, method='bistochastic', n_components=6, n_best=3, svd_method='randomized', n_svd_vecs=None, mini_batch=False, init='k-means++', n_init=10, random_state=None)#
谱双聚类(Kluger, 2003)。
假设数据具有潜在的棋盘结构,对行和列进行分区。例如,如果有两个行分区和三个列分区,每行将属于三个双聚类,每列将属于两个双聚类。相应的行和列标签向量的外积给出了这种棋盘结构。
更多信息请参阅 用户指南 。
- Parameters:
- n_clustersint or tuple (n_row_clusters, n_column_clusters), default=3
棋盘结构中的行和列聚类数量。
- method{‘bistochastic’, ‘scale’, ‘log’}, default=’bistochastic’
归一化和将奇异向量转换为双聚类的方法。可以是 ‘scale’、’bistochastic’ 或 ‘log’ 之一。作者推荐使用 ‘log’。然而,如果数据是稀疏的,对数归一化将无法工作,这就是默认值为 ‘bistochastic’ 的原因。
Warning
如果
method='log'
,数据必须不是稀疏的。- n_componentsint, default=6
要检查的奇异向量数量。
- n_bestint, default=3
要投影数据进行聚类的最佳奇异向量数量。
- svd_method{‘randomized’, ‘arpack’}, default=’randomized’
选择用于寻找奇异向量的算法。可以是 ‘randomized’ 或 ‘arpack’。如果为 ‘randomized’,使用
randomized_svd
,对于大矩阵可能更快。如果为 ‘arpack’,使用scipy.sparse.linalg.svds
,可能更准确,但在某些情况下可能更慢。- n_svd_vecsint, default=None
计算 SVD 时使用的向量数量。对应于
svd_method=arpack
时的ncv
和svd_method
为 ‘randomized’ 时的n_oversamples
。- mini_batchbool, default=False
是否使用小批量 k-means,这可能更快但可能得到不同的结果。
- init{‘k-means++’, ‘random’} or ndarray of shape (n_clusters, n_features), default=’k-means++’
k-means 算法的初始化方法;默认为 ‘k-means++’。
- n_initint, default=10
尝试 k-means 算法的随机初始化次数。
如果使用小批量 k-means,则选择最佳初始化并运行一次算法。否则,算法为每个初始化运行一次,并选择最佳解决方案。
- random_stateint, RandomState instance, default=None
用于随机化奇异值分解和 k-means 初始化。使用整数使随机性确定。参见 Glossary 。
- Attributes:
- rows_array-like of shape (n_row_clusters, n_rows)
聚类结果。如果聚类
i
包含行r
,则rows[i, r]
为 True。仅在调用fit
后可用。- columns_array-like of shape (n_column_clusters, n_columns)
聚类结果,类似于
rows
。- row_labels_array-like of shape (n_rows,)
行分区标签。
- column_labels_array-like of shape (n_cols,)
列分区标签。
biclusters_
tuple of two ndarrays方便地同时获取行和列指示符。
- n_features_in_int
在 fit 过程中看到的特征数量。
Added in version 0.24.
- feature_names_in_ndarray of shape (
n_features_in_
,) 在 fit 过程中看到的特征名称。仅当
X
的所有特征名均为字符串时定义。Added in version 1.0.
See also
SpectralCoclustering
谱共聚类算法(Dhillon, 2001)。
References
Examples
>>> from sklearn.cluster import SpectralBiclustering >>> import numpy as np >>> X = np.array([[1, 1], [2, 1], [1, 0], ... [4, 7], [3, 5], [3, 6]]) >>> clustering = SpectralBiclustering(n_clusters=2, random_state=0).fit(X) >>> clustering.row_labels_ array([1, 1, 1, 0, 0, 0], dtype=int32) >>> clustering.column_labels_ array([1, 0], dtype=int32) >>> clustering SpectralBiclustering(n_clusters=2, random_state=0)
有关更详细的示例,请参见 一个谱双聚类算法的演示
- property biclusters_#
方便地同时获取行和列指示符。
返回
rows_
和columns_
成员。
- fit(X, y=None)#
创建X的双聚类。
- Parameters:
- X形状为 (n_samples, n_features) 的类数组
训练数据。
- y忽略
未使用,为了API一致性而存在。
- Returns:
- selfobject
SpectralBiclustering 实例。
- get_indices(i)#
行和列索引的
i
‘th双聚类。只有在
rows_
和columns_
属性存在时才有效。- Parameters:
- iint
聚类的索引。
- Returns:
- row_indndarray, dtype=np.intp
属于双聚类的数据集中的行索引。
- col_indndarray, dtype=np.intp
属于双聚类的数据集中的列索引。
- get_metadata_routing()#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- Returns:
- routingMetadataRequest
MetadataRequest
封装的 路由信息。
- get_params(deep=True)#
获取此估计器的参数。
- Parameters:
- deepbool, 默认=True
如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。
- Returns:
- paramsdict
参数名称映射到它们的值。
- get_shape(i)#
形状的第
i
个双聚类。- Parameters:
- iint
聚类的索引。
- Returns:
- n_rowsint
双聚类中的行数。
- n_colsint
双聚类中的列数。
- get_submatrix(i, data)#
返回对应于双聚类
i
的子矩阵。- Parameters:
- iint
聚类的索引。
- dataarray-like of shape (n_samples, n_features)
数据。
- Returns:
- submatrixndarray of shape (n_rows, n_cols)
对应于双聚类
i
的子矩阵。
Notes
适用于稀疏矩阵。仅在
rows_
和columns_
属性存在时有效。