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

假设数据具有潜在的棋盘结构,对行和列进行分区。例如,如果有两个行分区和三个列分区,每行将属于三个双聚类,每列将属于两个双聚类。相应的行和列标签向量的外积给出了这种棋盘结构。

更多信息请参阅 用户指南

Parameters:
n_clustersint or tuple (n_row_clusters, n_column_clusters), default=3

棋盘结构中的行和列聚类数量。

method{‘bistochastic’, ‘scale’, ‘log’}, default=’bistochastic’

归一化和将奇异向量转换为双聚类的方法。可以是 ‘scale’、’bistochastic’ 或 ‘log’ 之一。作者推荐使用 ‘log’。然而,如果数据是稀疏的,对数归一化将无法工作,这就是默认值为 ‘bistochastic’ 的原因。

Warning

如果 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 时的 ncvsvd_method 为 ‘randomized’ 时的 n_oversamples

mini_batchbool, default=False

是否使用小批量 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 算法的随机初始化次数。

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

random_stateint, RandomState instance, default=None

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

Attributes:
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

fit 过程中看到的特征数量。

Added in version 0.24.

feature_names_in_ndarray of shape ( n_features_in_ ,)

fit 过程中看到的特征名称。仅当 X 的所有特征名均为字符串时定义。

Added in version 1.0.

See also

SpectralCoclustering

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

References

Examples

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

有关更详细的示例,请参见 一个谱双聚类算法的演示

property biclusters_#

方便地同时获取行和列指示符。

返回 rows_columns_ 成员。

fit(X, y=None)#

创建X的双聚类。

Parameters:
X形状为 (n_samples, n_features) 的类数组

训练数据。

y忽略

未使用,为了API一致性而存在。

Returns:
selfobject

SpectralBiclustering 实例。

get_indices(i)#

行和列索引的 i ‘th双聚类。

只有在 rows_columns_ 属性存在时才有效。

Parameters:
iint

聚类的索引。

Returns:
row_indndarray, dtype=np.intp

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

col_indndarray, dtype=np.intp

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

get_metadata_routing()#

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

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

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

Returns:
paramsdict

参数名称映射到它们的值。

get_shape(i)#

形状的第 i 个双聚类。

Parameters:
iint

聚类的索引。

Returns:
n_rowsint

双聚类中的行数。

n_colsint

双聚类中的列数。

get_submatrix(i, data)#

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

Parameters:
iint

聚类的索引。

dataarray-like of shape (n_samples, n_features)

数据。

Returns:
submatrixndarray of shape (n_rows, n_cols)

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

Notes

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

set_params(**params)#

设置此估计器的参数。

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

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。