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)。

假设数据具有底层棋盘结构,对行和列进行分区。例如,如果有两个行分区和三个列分区,那么每一行将属于三个双集群,而每一列将属于两个双集群。相应行和列标签载体的外积给出了这种棋盘结构。

阅读更多的 User Guide .

参数:
n_clustersint或tuple(n_row_clusters,n_entry_clusters),默认=3

棋盘结构中行和列集群的数量。

method'双随机',',',',默认='双随机'

奇异向量正规化转换为双丛集的方法。可以是“scale”、“bistochastic”或“log”中的一个。作者建议使用“log”。然而,如果数据是稀疏的,则日志规范化将不起作用,这就是为什么默认值是“bistochastic”。

警告

如果 method='log' ,数据一定不能稀疏。

n_componentsint,默认=6

要检查的奇异载体的数量。

n_bestint,默认=3

将数据投影到其进行集群的最佳奇异载体的数量。

svd_method'随机',',默认='随机'

给出了求奇异向量的算法。可以是“随机”或“arpack”。如果“随机化”,则使用 randomized_svd ,对于大型矩阵来说,这可能更快。如果“arpack”,则使用 scipy.sparse.linalg.svds ,这更准确,但在某些情况下可能会更慢。

n_svd_vecsint,默认=无

计算SVD时使用的向量数。对应于 ncvsvd_method=arpackn_oversamplessvd_method 是“随机的”。

mini_batch布尔,默认=假

是否使用迷你批量k均值,它更快,但可能会得到不同的结果。

init' k-means ++',' random '}或形状的nd数组(n_classes,n_features), 默认=' k-means ++'

用于初始化k-means算法的方法;默认为“k-means++”。

n_initint,默认值=10

使用k均值算法尝试的随机初始化数量。

如果使用小批量k-means,则选择最佳初始化并运行一次算法。否则,该算法将在每次初始化时运行,并选择最佳解决方案。

random_stateint,RandomState实例,默认=无

用于随机化奇异值分解和k均值初始化。使用int使随机性具有确定性。看到 Glossary .

属性:
rows_数组状的形状(n_row_clusters,n_rows)

集群的结果。 rows[i, r] 如果集群,则为真 i 包含行 r .仅在致电后可用 fit .

columns_形状类似阵列(n_列_集群,n_列)

Results of the clustering, like rows.

row_labels_array-like of shape(n_rows,)

行分区标签。

column_labels_形状类似阵列(n_RST,)

列分区标签。

biclusters_两个ndarray的多元组

将行和列指示器结合在一起的便捷方法。

n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 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)[源代码]#

为X创建双聚类。

参数:
X形状类似阵列(n_samples,n_features)

训练数据。

y忽视

未使用,按照惯例,为了API一致性而存在。

返回:
self对象

SpectralBustering实例。

get_indices(i)[源代码]#

对象的行索引和列索引 i 第二个二元集群。

只有在以下情况下才有效 rows_columns_ 属性存在。

参数:
iint

集群的索引。

返回:
row_indndray,dype =NP.intp

数据集中属于双集群的行的索引。

col_indndray,dype =NP.intp

数据集中属于双聚类的列的索引。

get_metadata_routing()[源代码]#

获取此对象的元数据路由。

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

get_shape(i)[源代码]#

形状 i 第二个二元集群。

参数:
iint

集群的索引。

返回:
n_rowsint

双集群中的行数。

n_colsint

双集群中的列数。

get_submatrix(i, data)[源代码]#

返回双集群对应的子矩阵 i .

参数:
iint

集群的索引。

data形状类似阵列(n_samples,n_features)

数据。

返回:
submatrix形状的nd数组(n_rows,n_RST)

双聚类对应的子矩阵 i .

注意到

适用于稀疏矩阵。只有在以下情况下才有效 rows_columns_ 属性存在。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline ).后者具有以下形式的参数 <component>__<parameter> 以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。