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

光谱共聚类算法(Dhillon,2001)。

Clusters rows and columns of an array X to solve the relaxed normalized cut of the bipartite graph created from X as follows: the edge between row vertex i and column vertex j has weight X[i, j].

由此产生的双集群结构是块对角线的,因为每一行和每列恰好属于一个双集群。

支持稀疏矩阵,只要它们是非负的。

阅读更多的 User Guide .

参数:
n_clustersint,默认=3

要查找的双集群数量。

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

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

n_svd_vecsint,默认=无

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

mini_batch布尔,默认=假

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

init{'k-means++', 'random'}, or ndarray of shape (n_clusters, n_features), default='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.

参见

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

为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估计器实例

估计实例。