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)[source]#
谱双聚类 (Kluger, 2003)。
假设数据具有潜在的棋盘结构,对行和列进行分区。例如,如果存在两个行分区和三个列分区,则每行将属于三个双聚类,每列将属于两个双聚类。相应的行和列标签向量的外积形成了这种棋盘结构。
更多信息请参阅用户指南。
- 参数:
- n_clusters整型或元组 (n_row_clusters, n_column_clusters), 默认值3
棋盘结构中的行和列聚类数。
- method{‘bistochastic’, ‘scale’, ‘log’}, 默认值’bistochastic’
将奇异向量归一化并转换为双聚类的方法。可以是“scale”、“bistochastic”或“log”之一。作者建议使用“log”。但是,如果数据是稀疏的,对数归一化将不起作用,这就是默认值为“bistochastic”的原因。
警告
如果
method='log'
,则数据不能是稀疏的。- n_components整型, 默认值6
要检查的奇异向量数。
- n_best整型, 默认值3
用于聚类的数据投影的最佳奇异向量数。
- svd_method{‘randomized’, ‘arpack’}, 默认值’randomized’
选择查找奇异向量的算法。可以是“randomized”或“arpack”。如果为“randomized”,则使用
randomized_svd
,这对于大型矩阵可能更快。如果为“arpack”,则使用scipy.sparse.linalg.svds
,它更准确,但在某些情况下可能更慢。- n_svd_vecs整型, 默认值None
计算SVD时使用的向量数。当
svd_method=arpack
时对应于ncv
,当svd_method
为“randomized”时对应于n_oversamples
。- mini_batch布尔型, 默认值False
是否使用mini-batch k-means,速度更快但可能得到不同的结果。
- init{‘k-means++’, ‘random’} 或形状为 (n_clusters, n_features) 的ndarray, 默认值’k-means++’
k-means 算法的初始化方法;默认为“k-means++”。
- n_init整型, 默认值10
k-means 算法尝试的随机初始化次数。
如果使用 mini-batch k-means,将选择最佳初始化并运行算法一次。否则,将对每个初始化运行算法并选择最佳解决方案。
- random_state整型, RandomState 实例, 默认值None
用于随机化奇异值分解和 k-means 初始化。使用整型使随机性确定。请参阅术语表。
- 属性:
- rows_形状为 (n_row_clusters, n_rows) 的类数组
聚类结果。
rows[i, r]
如果聚类i
包含行r
则为 True。仅在调用fit
后可用。- columns_形状为 (n_column_clusters, n_columns) 的类数组
聚类结果,类似于
rows
。- row_labels_形状为 (n_rows,) 的类数组
行分区标签。
- column_labels_形状为 (n_cols,) 的类数组
列分区标签。
biclusters_
包含两个 ndarray 的元组获取行和列指标的便捷方式。
- n_features_in_整型
在 拟合 期间观察到的特征数量。
0.24 版本新增。
- feature_names_in_形状为 (
n_features_in_
,) 的ndarray 在 拟合 期间观察到的特征名称。仅当
X
的所有特征名称均为字符串时才定义。1.0 版本新增。
另请参阅
SpectralCoclustering
谱协同聚类算法 (Dhillon, 2001)。
参考文献
示例
>>> 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)
有关更详细的示例,请参阅谱双聚类算法演示
- fit(X, y=None)[source]#
为 X 创建双聚类。
- 参数:
- X形状为 (n_samples, n_features) 的类数组
训练数据。
- y忽略
未使用,按照惯例为了 API 一致性而存在。
- 返回:
- self对象
SpectralBiclustering 实例。
- get_indices(i)[source]#
第
i
个双聚类的行和列索引。仅当
rows_
和columns_
属性存在时才有效。- 参数:
- i整型
聚类的索引。
- 返回:
- row_indndarray, dtype=np.intp
数据集中属于双聚类的行索引。
- col_indndarray, dtype=np.intp
数据集中属于双聚类的列索引。
- get_metadata_routing()[source]#
获取此对象的元数据路由。
请查阅用户指南,了解路由机制的工作原理。
- 返回:
- routingMetadataRequest
一个封装路由信息的
MetadataRequest
。
- get_params(deep=True)[source]#
获取此估计器的参数。
- 参数:
- deep布尔型, 默认值True
如果为 True,将返回此估计器及其包含的作为估计器的子对象的参数。
- 返回:
- params字典
参数名称及其对应的值。