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

參數名稱對應到它們的值。

get_shape(i)[原始碼]#

i 個雙向群集的形狀。

參數:
iint

群集的索引。

傳回:
n_rowsint

雙向群集中的列數。

n_colsint

雙向群集中的行數。

get_submatrix(i, data)[原始碼]#

返回對應於雙向群集 i 的子矩陣。

參數:
iint

群集的索引。

data類陣列,形狀為 (n_samples, n_features)

資料。

傳回:
submatrixndarray,形狀為 (n_rows, n_cols)

對應於雙向群集 i 的子矩陣。

說明

適用於稀疏矩陣。僅在 rows_columns_ 屬性存在時才有效。

set_params(**params)[原始碼]#

設定此估算器的參數。

該方法適用於簡單的估算器,也適用於巢狀物件(例如 Pipeline)。後者的參數形式為 <component>__<parameter>,因此可以更新巢狀物件的每個元件。

參數:
**paramsdict

估算器參數。

傳回:
self估算器實例

估算器實例。