谱协同聚类#

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)[source]#

谱协同聚类算法 (Dhillon, 2001)。

对数组 X 的行和列进行聚类,以解决由 X 创建的二部图的松弛归一化割问题:行顶点 i 和列顶点 j 之间的边的权重为 X[i, j]

生成的双聚类结构是块对角的,因为每一行和每一列都只属于一个双聚类。

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

更多信息请参见用户指南

参数:
n_clustersint, 默认值=3

要查找的双聚类的数量。

svd_method{'randomized', 'arpack'}, 默认值='randomized'

选择用于查找奇异向量的算法。可以是 'randomized' 或 'arpack'。如果为 'randomized',则使用 sklearn.utils.extmath.randomized_svd,对于大型矩阵,这可能更快。如果为 'arpack',则使用 scipy.sparse.linalg.svds,它更准确,但在某些情况下可能更慢。

n_svd_vecsint, 默认值=None

计算 SVD 时使用的向量数量。当 svd_method=arpack 时对应于 ncv,当 svd_method 为 'randomized' 时对应于 n_oversamples

mini_batchbool, 默认值=False

是否使用 mini-batch k-means,它更快,但可能会得到不同的结果。

init{'k-means++', 'random'},或 shape 为 (n_clusters, n_features) 的 ndarray,默认值='k-means++'

k-means 算法初始化的方法;默认为 'k-means++'。

n_initint, 默认值=10

使用 k-means 算法尝试的随机初始化次数。

如果使用 mini-batch k-means,则选择最佳初始化,并且算法运行一次。否则,算法将针对每次初始化运行,并选择最佳解决方案。

random_stateint,RandomState 实例,默认值=None

用于随机化奇异值分解和 k-means 初始化。使用整数可以使随机性确定性。参见 词汇表

属性:
rows_shape 为 (n_row_clusters, n_rows) 的类数组

聚类结果。rows[i, r] 为 True 表示聚类 i 包含行 r。只有在调用 fit 后才可用。

columns_shape 为 (n_column_clusters, n_columns) 的类数组

聚类结果,类似于 rows

row_labels_shape 为 (n_rows,) 的类数组

每行的双聚类标签。

column_labels_shape 为 (n_cols,) 的类数组

每列的双聚类标签。

biclusters_两个 ndarray 的元组

方便获取行和列指示器的方法。

n_features_in_int

fit 期间看到的特征数量。

0.24 版本中添加。

feature_names_in_shape 为 (n_features_in_,) 的 ndarray

fit 期间看到的特征名称。仅当 X 的特征名称全部为字符串时才定义。

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)
property biclusters_#

方便获取行和列指示器的方法。

返回 rows_columns_ 成员。

fit(X, y=None)[source]#

为 X 创建双聚类。

参数:
Xshape 为 (n_samples, n_features) 的类数组

训练数据。

y忽略

未使用,根据约定保留以保持 API 一致性。

返回值:
self对象

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, 默认值=True

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

返回值:
paramsdict

参数名称与其值的映射。

get_shape(i)[source]#

i 个双聚类的形状。

参数:
iint

聚类的索引。

返回值:
n_rowsint

双聚类中的行数。

n_colsint

双聚类中的列数。

get_submatrix(i, data)[source]#

返回对应于双聚类 i 的子矩阵。

参数:
iint

聚类的索引。

data形状为 (n_samples, n_features) 的类数组

数据。

返回值:
submatrix形状为 (n_rows, n_cols) 的ndarray

对应于双聚类 i 的子矩阵。

注释

适用于稀疏矩阵。仅当存在 rows_columns_ 属性时才有效。

set_params(**params)[source]#

设置此估计器的参数。

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

参数:
**paramsdict

估计器参数。

返回值:
self估计器实例

估计器实例。