FeatureAgglomeration#
- class sklearn.cluster.FeatureAgglomeration(n_clusters=2, *, metric='euclidean', memory=None, connectivity=None, compute_full_tree='auto', linkage='ward', pooling_func=<function mean>, distance_threshold=None, compute_distances=False)[來源]#
聚集特徵。
遞迴地合併成對的特徵叢集。
請參考特徵聚集 vs. 單變量選擇,以取得
FeatureAgglomeration
策略與單變量特徵選擇策略(基於 ANOVA)比較的範例。更多內容請參閱使用者指南。
- 參數:
- n_clustersint 或 None,預設值為 2
要尋找的叢集數量。如果
distance_threshold
不是None
,則必須為None
。- metricstr 或可呼叫物件,預設值為 “euclidean”
用於計算連結的度量標準。可以是“euclidean”、“l1”、“l2”、“manhattan”、“cosine”或“precomputed”。如果連結是“ward”,則只接受“euclidean”。如果為“precomputed”,則 fit 方法需要一個距離矩陣作為輸入。
1.2 版新增。
- memorystr 或具有 joblib.Memory 介面的物件,預設值為 None
用於快取樹計算的輸出。預設情況下,不進行快取。如果給定字串,則它是快取目錄的路徑。
- connectivity類陣列、稀疏矩陣或可呼叫物件,預設值為 None
連通性矩陣。根據資料的給定結構,為每個特徵定義相鄰的特徵。這可以是連通性矩陣本身,也可以是將資料轉換為連通性矩陣的可呼叫物件,例如從
kneighbors_graph
衍生而來。預設值為None
,即階層式叢集演算法是非結構化的。- compute_full_tree‘auto’ 或 bool,預設值為 ‘auto’
在
n_clusters
時提前停止樹的建構。如果叢集的數量與特徵的數量相比不大,則這對於減少計算時間很有用。只有在指定連通性矩陣時,此選項才有用。另請注意,當改變叢集數量並使用快取時,計算完整的樹可能是有利的。如果distance_threshold
不是None
,則必須為True
。預設情況下,compute_full_tree
為 “auto”,當distance_threshold
不是None
或n_clusters
小於 100 或0.02 * n_samples
的最大值時,它等效於True
。否則,“auto” 等效於False
。- linkage{“ward”, “complete”, “average”, “single”},預設值為 “ward”
要使用的連結標準。連結標準決定了在特徵集合之間使用哪個距離。該演算法將合併使此標準最小化的叢集對。
“ward” 使合併的叢集的變異數最小化。
“complete” 或最大連結使用兩個集合的所有特徵之間的距離最大值。
“average” 使用兩個集合的每個特徵的距離平均值。
“single” 使用兩個集合的所有特徵之間的距離最小值。
- pooling_func可呼叫物件,預設值為 np.mean
這會將聚集特徵的值組合為單個值,並且應接受形狀為 [M, N] 的陣列和關鍵字參數
axis=1
,並將其縮減為大小為 [M] 的陣列。- distance_thresholdfloat,預設值為 None
連結距離臨界值,高於或等於此臨界值的叢集將不會合併。如果不是
None
,則n_clusters
必須為None
,並且compute_full_tree
必須為True
。0.21 版新增。
- compute_distancesbool,預設值為 False
即使不使用
distance_threshold
,也會計算叢集之間的距離。這可用於製作樹狀圖視覺化,但會引入計算和記憶體額外負擔。0.24 版新增。
- 屬性:
- n_clusters_int
演算法找到的叢集數量。如果
distance_threshold=None
,則它將等於給定的n_clusters
。- labels_形狀為 (n_features,) 的類陣列
每個特徵的叢集標籤。
- n_leaves_int
階層式樹中的葉子數。
- n_connected_components_int
圖中連通元件的估計數量。
在版本 0.21 中新增:
n_connected_components_
已被新增以取代n_components_
。- n_features_in_int
在 fit 期間看到的特徵數量。
0.24 版新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在 fit 期間看到的特徵名稱。僅當
X
具有全部為字串的特徵名稱時才定義。在版本 1.0 中新增。
- children_形狀為 (n_nodes-1, 2) 的類陣列
每個非葉節點的子節點。小於
n_features
的值對應於樹的葉節點,這些葉節點是原始樣本。大於或等於n_features
的節點i
是一個非葉節點,其子節點為children_[i - n_features]
。或者,在第 i 次迭代時,children[i][0] 和 children[i][1] 會合併以形成節點n_features + i
。- distances_形狀為 (n_nodes-1,) 的類陣列
children_
中對應位置的節點之間的距離。僅當使用distance_threshold
或compute_distances
設定為True
時才會計算。
另請參閱
AgglomerativeClustering
針對樣本而非特徵進行聚合式分群。
ward_tree
使用 ward 連接的階層式分群。
範例
>>> import numpy as np >>> from sklearn import datasets, cluster >>> digits = datasets.load_digits() >>> images = digits.images >>> X = np.reshape(images, (len(images), -1)) >>> agglo = cluster.FeatureAgglomeration(n_clusters=32) >>> agglo.fit(X) FeatureAgglomeration(n_clusters=32) >>> X_reduced = agglo.transform(X) >>> X_reduced.shape (1797, 32)
- fit(X, y=None)[原始碼]#
將階層式分群擬合到資料。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
資料。
- y已忽略
未使用,此處為遵循慣例以保持 API 的一致性。
- 傳回值:
- self物件
傳回轉換器。
- property fit_predict#
擬合並傳回每個樣本的分群指派結果。
- fit_transform(X, y=None, **fit_params)[原始碼]#
擬合資料,然後轉換資料。
使用選用參數
fit_params
將轉換器擬合到X
和y
,並傳回X
的轉換版本。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
輸入樣本。
- y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列,預設值為 None
目標值(用於無監督轉換時為 None)。
- **fit_paramsdict
其他擬合參數。
- 傳回值:
- X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列
轉換後的陣列。
- get_feature_names_out(input_features=None)[原始碼]#
取得轉換的輸出特徵名稱。
輸出的特徵名稱將以小寫的類別名稱作為前綴。例如,如果轉換器輸出 3 個特徵,則輸出的特徵名稱為:
["class_name0", "class_name1", "class_name2"]
。- 參數:
- input_features字串或 None 的類陣列,預設值為 None
僅用於驗證特徵名稱與
fit
中看到的名稱是否相符。
- 傳回值:
- feature_names_out字串物件的 ndarray
轉換後的特徵名稱。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看使用者指南以了解路由機制如何運作。
- 傳回值:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deepbool,預設值為 True
如果為 True,將傳回此估算器和其中包含的子物件(即估算器)的參數。
- 傳回值:
- paramsdict
參數名稱對應到它們的值。
- inverse_transform(X=None, *, Xt=None)[原始碼]#
反轉轉換並傳回大小為
n_features
的向量。- 參數:
- X形狀為 (n_samples, n_clusters) 或 (n_clusters,) 的類陣列
要指派給每個樣本叢集的值。
- Xt形狀為 (n_samples, n_clusters) 或 (n_clusters,) 的類陣列
要指派給每個樣本叢集的值。
自版本 1.5 起已棄用:
Xt
已在 1.5 版中棄用,並將在 1.7 版中移除。請改用X
。
- 傳回值:
- X形狀為 (n_samples, n_features) 或 (n_features,) 的 ndarray
大小為
n_samples
的向量,其中包含指派給每個樣本叢集的Xred
值。
- set_output(*, transform=None)[原始碼]#
設定輸出容器。
請參閱引入 set_output API以取得如何使用 API 的範例。
- 參數:
- transform{“default”, “pandas”, “polars”},預設值為 None
設定
transform
和fit_transform
的輸出。"default"
:轉換器的預設輸出格式"pandas"
:DataFrame 輸出"polars"
:Polars 輸出None
:轉換設定保持不變
在版本 1.4 中新增:新增了
"polars"
選項。
- 傳回值:
- self估算器執行個體
估算器執行個體。