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([[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([0, 1], 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 估計器實例 |