SpectralCoclustering#
- 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)[原始碼]#
譜系共聚類演算法(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’} 或形狀為 (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 初始化。使用 int 使隨機性具有確定性。請參閱 術語表。
- 屬性:
- rows_形狀為 (n_row_clusters, n_rows) 的類陣列
分群的結果。如果叢集
i
包含列r
,則rows[i, r]
為 True。僅在呼叫fit
後可用。- columns_形狀為 (n_column_clusters, n_columns) 的類陣列
分群的結果,與
rows
類似。- row_labels_形狀為 (n_rows,) 的類陣列
每行的雙聚類標籤。
- column_labels_形狀為 (n_cols,) 的類陣列
每列的雙聚類標籤。
biclusters_
兩個 ndarray 的元組方便地將行和列指標放在一起的方法。
- n_features_in_int
在 fit 期間看到的特徵數量。
在 0.24 版本中新增。
- feature_names_in_形狀為 (
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)[原始碼]#
為 X 建立雙聚類。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
訓練資料。
- y已忽略
不使用,依慣例為了 API 的一致性而存在。
- 傳回:
- self物件
SpectralBiclustering 實例。
- get_indices(i)[原始碼]#
第
i
個雙向群集的行和列索引。僅在
rows_
和columns_
屬性存在時才有效。- 參數:
- iint
群集的索引。
- 傳回:
- row_indndarray, dtype=np.intp
資料集中屬於該雙向群集的列索引。
- col_indndarray, dtype=np.intp
資料集中屬於該雙向群集的行索引。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查閱 使用指南,了解路由機制的運作方式。
- 傳回:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deepbool, default=True
如果為 True,將返回此估算器和包含的子物件(也是估算器)的參數。
- 傳回:
- paramsdict
參數名稱對應到它們的值。