sklearn.cluster.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, n_jobs='deprecated', random_state=None)

光譜雙聚類(Kluger,2003年)

在假定數據具有底層棋盤結構的前提下對行和列進行分區。例如,如果有兩個行分區和三個列分區,那么每一行將屬于三個雙簇,每個列將屬于兩個雙簇。對應的行和列標簽向量的外部乘積給出了這種棋盤結構。

用戶指南中閱讀更多內容。

參數 說明
n_clusters int or tuple (n_row_clusters, n_column_clusters), default=3
棋盤結構中的行和列的簇數。
method {‘bistochastic’, ‘scale’, ‘log’}, default=’bistochastic’
將奇異向量歸一化并轉換為雙聚類的方法。可以是‘scale’, ‘bistochastic’, 或者 ‘log’中的一個。作者建議使用“log”。但是,如果數據稀疏,則log歸一化將無法工作,這就是為什么默認的是‘bistochastic’。

警告:method=‘log’,數據必須是稀疏的。
n_components int, default=6
要檢查的奇異向量數
n_best int, default=3
供聚類時, 將數據投影的佳奇異向量的數目
svd_method {‘randomized’, ‘arpack’}, default=’randomized’
選擇尋找奇異向量的算法。可以是‘randomized’ 或者 ‘arpack’。如果是‘randomized’,則使用randomized_svd,這對于大型矩陣來說可能更快。如果是‘arpack’,則使用scipy.sparse.linalg.svds, 這更準確,但在某些情況下可能更慢。
n_svd_vecs int, default=None
用于計算SVD的向量數。當svd_method=arpack時,對應于ncv;當svd_method為‘randomized時,對應于n_oversames
mini_batch bool, default=False
是否使用小型批處理k-means,這會更快,但可能得到不同的結果。
init {‘k-means++’, ‘random’} or ndarray of (n_clusters, n_features), default=’k-means++’
k-means算法初始化方法;默認為“k-means+”。
n_init int, default=10
使用k-means算法嘗試的隨機初始化的次數。
如果使用小批量處理k-means,則選擇最佳初始化是只運行一次算法。否則,將對每個初始化和所選的最佳解決方案運行該算法。
n_jobs int, default=None
用于計算的作業數。這是通過將成對的矩陣分解成n個均勻切片并并行計算來實現的。
random_state int, RandomState instance, default=None
用于隨機化奇異值分解和k-means初始化。使用整數使隨機性確定。見Glossary
屬性 方法
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)
聚類結果, 和row一致。
row_labels_ array-like of shape (n_rows,)
行分區標簽
column_labels_ array-like of shape (n_cols,)
列分區標簽

參考

Kluger, Yuval, et. al., 2003. Spectral biclustering of microarray data: coclustering genes and conditions.

示例

>>> from sklearn.cluster import SpectralBiclustering
>>> import numpy as np
>>> X = np.array([[11], [21], [10],
...               [47], [35], [36]])
>>> clustering = SpectralBiclustering(n_clusters=2, random_state=0).fit(X)
>>> clustering.row_labels_
array([111000], dtype=int32)
>>> clustering.column_labels_
array([01], dtype=int32)
>>> clustering
SpectralBiclustering(n_clusters=2, random_state=0)

方法

方法 屬性
fit(self, X[, y]) 對X創建雙聚類
get_indices(self, i) 第i個雙聚類中行和列的索引
get_params(self[, deep]) 獲取此估計器的參數
get_shape(self, i) 第i個雙聚類的形狀
get_submatrix(self, i, data) 返回與雙聚類i對應的子矩陣
set_params(self, **params) 設置此估計器的參數
__init__(self, 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, n_jobs='deprecated', random_state=None)

[源碼]

初始化self。請參閱help(type(self))以獲得準確的說明。

property biclusters_

將行和列指示器組合在一起的方便方法

返回rows_columns_成員。

fit(self, X, y=None)

[源碼]

對X創建雙聚類

參數 說明
X array-like, shape (n_samples, n_features)
y Ignored
get_indices(self, i)

[源碼]

第i個雙聚類中行和列的索引

只有在row_columns_屬性存在的情況下才有用。

參數 說明
i int
簇的索引
返回值 說明
row_ind ndarray, dtype=np.intp
數據集中屬于雙聚類的行的索引。
col_ind ndarray, dtype=np.intp
數據集中屬于雙聚類的列的索引。
get_params(self, deep=True)

[源碼]

獲取此估計器的參數

參數 說明
deep bool, default=True
如果為True,則將返回此估計器的參數和所包含的作為估計量的子對象。
返回值 說明
params mapping of string to any
映射到其值的參數名稱
get_shape(self, i)

[源碼]

獲取此估計器的參數

表格 說明
i int
簇的索引。
返回值 說明
shape tuple (int, int)
在雙聚類中的行數和列數
get_submatrix(self, i, data)

[源碼]

獲取此估計器的參數

表格 說明
i int
簇的索引。
data array-like
數據
返回值 說明
submatrix ndarray
與雙聚類i對應的子矩陣

適用于稀疏矩陣。只有在row_columns屬性存在的情況下才有用。

set_params(self, **params)

[源碼]

設置此估計器的參數

該方法適用于簡單估計器以及嵌套對象(例如pipelines)。后者具有表單的 <component>__<parameter>參數,這樣就可以更新嵌套對象的每個組件。

表格 說明
**params dict
估計器參數
返回值 說明書
self object
估計器實例

sklearn.cluster.SpectralBiclustering使用示例?