譜雙聚類#
- 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)。
在假設數據具有底層棋盤結構的情況下,分割行和列。例如,如果有兩個行分割和三個列分割,則每行將屬於三個雙聚類,而每列將屬於兩個雙聚類。相應的行和列標籤向量的外積給出這個棋盤結構。
請在使用者指南中閱讀更多內容。
- 參數:
- n_clustersint 或 tuple (n_row_clusters, n_column_clusters), default=3
棋盤結構中行和列聚類的數量。
- method{‘bistochastic’, ‘scale’, ‘log’}, default='bistochastic'
將奇異向量正規化並轉換為雙聚類的方法。可以是 'scale'、'bistochastic' 或 'log' 其中之一。作者建議使用 'log'。但是,如果資料是稀疏的,則對數正規化將不起作用,這就是預設值為 'bistochastic' 的原因。
警告
如果
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
時對應於ncv
,當svd_method
為 'randomized' 時對應於n_oversamples
。- mini_batchbool, default=False
是否使用迷你批次 k 平均值,它更快,但可能會得到不同的結果。
- init{‘k-means++’, ‘random’} 或形狀為 (n_clusters, n_features) 的 ndarray, default='k-means++'
k 平均值演算法初始化的方法;預設為 'k-means++'。
- n_initint, default=10
k 平均值演算法嘗試的隨機初始化次數。
如果使用迷你批次 k 平均值,則會選擇最佳初始化並執行一次演算法。否則,演算法會針對每次初始化執行,並選擇最佳解決方案。
- random_stateint, RandomState 實例, default=None
用於隨機化奇異值分解和 k 平均值初始化。使用 int 可使隨機性具確定性。請參閱詞彙表。
- 屬性:
- rows_形狀為 (n_row_clusters, n_rows) 的類陣列
聚類的結果。
rows[i, r]
如果聚類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 版本中新增。
另請參閱
SpectralCoclustering
譜共同聚類演算法 (Dhillon, 2001)。
參考文獻
範例
>>> 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 建立雙向分群。
- 參數:
- X形狀如 (n_samples, n_features) 的類陣列
訓練資料。
- y忽略
依慣例,為了 API 的一致性而存在,不使用。
- 回傳值:
- self物件
SpectralBiclustering 實例。
- get_indices(i)[原始碼]#
第
i
個雙向叢集的列和行索引。只有在
rows_
和columns_
屬性存在時才有效。- 參數:
- i整數
叢集的索引。
- 回傳值:
- row_indndarray, dtype=np.intp
資料集中屬於雙向叢集的列的索引。
- col_indndarray, dtype=np.intp
資料集中屬於雙向叢集的行的索引。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請參閱 使用者指南 以了解路由機制如何運作。
- 回傳值:
- routingMetadataRequest
封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deep布林值,預設值為 True
如果為 True,將會回傳此估算器和包含的子物件(也是估算器)的參數。
- 回傳值:
- params字典
參數名稱對應到其值。