fclusterdata#
- scipy.cluster.hierarchy.fclusterdata(X, t, criterion='inconsistent', metric='euclidean', depth=2, method='single', R=None)[source]#
使用給定的度量叢集觀測資料。
使用歐幾里得距離度量來計算原始觀測值之間的距離,使用單連結演算法執行階層式分群,並使用不一致性方法和 t 作為截止閾值來形成扁平叢集,以叢集 n x m 資料矩陣 X(m 維中的 n 個觀測值)中的原始觀測值。
將返回長度為
n
的 1-D 陣列T
。T[i]
是原始觀測值i
所屬的扁平叢集的索引。- 參數:
- X(N, M) ndarray
N x M 資料矩陣,包含 N 個觀測值,每個觀測值有 M 個維度。
- t標量
- 對於 'inconsistent'、'distance' 或 'monocrit' 準則,
這是形成扁平叢集時要應用的閾值。
- 對於 'maxclust' 或 'maxclust_monocrit' 準則,
這將是請求的最大叢集數量。
- criterion字串,選用
指定形成扁平叢集的準則。有效值為 'inconsistent'(預設值)、'distance' 或 'maxclust' 叢集形成演算法。請參閱
fcluster
以取得說明。- metric字串或函式,選用
用於計算成對距離的距離度量。請參閱
distance.pdist
以取得說明,並參閱 linkage 以驗證與連結方法的相容性。- depth整數,選用
不一致性計算的最大深度。請參閱
inconsistent
以取得更多資訊。- method字串,選用
要使用的連結方法(single、complete、average、weighted、median centroid、ward)。請參閱
linkage
以取得更多資訊。預設值為 “single”。- Rndarray,選用
不一致性矩陣。如果未傳遞,必要時將會計算。
- 返回值:
- fclusterdatandarray
長度為 n 的向量。 T[i] 是原始觀測值 i 所屬的扁平叢集編號。
另請參閱
註解
此函式與 MATLAB 函式
clusterdata
類似。範例
>>> from scipy.cluster.hierarchy import fclusterdata
這是一個方便的方法,它抽象化了在典型的 SciPy 階層式分群工作流程中執行的所有步驟。
使用
scipy.spatial.distance.pdist
將輸入資料轉換為壓縮矩陣。應用分群方法。
使用
scipy.cluster.hierarchy.fcluster
在使用者定義的距離閾值t
處取得扁平叢集。
>>> X = [[0, 0], [0, 1], [1, 0], ... [0, 4], [0, 3], [1, 4], ... [4, 0], [3, 0], [4, 1], ... [4, 4], [3, 4], [4, 3]]
>>> fclusterdata(X, t=1) array([3, 3, 3, 4, 4, 4, 2, 2, 2, 1, 1, 1], dtype=int32)
此處的輸出(對於資料集
X
、距離閾值t
和預設設定)是四個叢集,每個叢集包含三個資料點。