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)[1]。
在数据具有底层棋盘格结构的假设下对行和列进行分区。例如,如果存在两个行分区和三个列分区,则每行将属于三个双聚类,每列将属于两个双聚类。相应的行和列标签向量的外积形成了这种棋盘格结构。
在用户指南中了解更多信息。
- 参数:
- n_clustersint or tuple (n_row_clusters, n_column_clusters), default=3
棋盘格结构中的行和列聚类数。
- method{‘bistochastic’, ‘scale’, ‘log’}, default=’bistochastic’
用于将奇异向量归一化并转换为双聚类的方法。可以是“scale”、“bistochastic”或“log”之一。作者推荐使用“log”。然而,如果数据稀疏,对数归一化将不起作用,这就是为什么默认设置为“bistochastic”。
警告
如果
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
是否使用 mini-batch 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 算法尝试的随机初始化次数。
如果使用 mini-batch k-means,则选择最佳初始化并运行算法一次。否则,对每次初始化运行算法,并选择最佳解决方案。
- random_stateint, RandomState instance, default=None
用于对奇异值分解和 k-means 初始化进行随机化。使用 int 使随机性确定。请参阅词汇表。
- 属性:
- 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
在 拟合 期间看到的特征数。
0.24 版本新增。
- feature_names_in_shape 为 (
n_features_in_,) 的 ndarray 在 fit 期间看到的特征名称。仅当
X具有全部为字符串的特征名称时才定义。1.0 版本新增。
另请参阅
SpectralCoclustering对数组
X的行和列进行聚类,以解决由X创建的二分图的松弛归一化割问题。
References
示例
>>> 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 创建双聚类。
- 参数:
- Xshape 为 (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, default=True
如果为 True,将返回此估计器以及包含的子对象(如果它们是估计器)的参数。
- 返回:
- paramsdict
参数名称映射到其值。