sklearn.cluster.SpectralCoclustering?

class sklearn.cluster.SpectralCoclustering(n_clusters=3, *, svd_method='randomized', n_svd_vecs=None, mini_batch=False, init='k-means++', n_init=10, n_jobs='deprecated', random_state=None)

[源碼]

譜協聚類算法(Dishon,2001年)

對數組X中的行和列進行聚類,以求由X生成的二分圖的松弛歸一化割集,如下:行頂點i和列頂點j之間的邊具有權重X[i,j]

由此產生的雙聚類結構是塊對角結構,因為每一行和每一列都正好屬于一個雙聚類結構。

支持稀疏矩陣,只要它們是非負的。

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

參數 參數
n_clusters 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個均勻切片并并行計算來實現的。

從0.23版n_jobs開始不推薦使用*:從0.23版*開始不推薦使用,并將在0.25版中刪除。
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,)
列分區標簽

參考

Dhillon, Inderjit S, 2001. Co-clustering documents and words using bipartite spectral graph partitioning.

示例

>>> from sklearn.cluster import SpectralCoclustering
>>> import numpy as np
>>> X = np.array([[11], [21], [10],
...               [47], [35], [36]])
>>> clustering = SpectralCoclustering(n_clusters=2, random_state=0).fit(X)
>>> clustering.row_labels_ #doctest: +SKIP
array([011000], dtype=int32)
>>> clustering.column_labels_ #doctest: +SKIP
array([00], dtype=int32)
>>> clustering
SpectralCoclustering(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, *, 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.SpectralCoclustering使用示例?