scipy.cluster.hierarchy.

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 陣列 TT[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 所屬的扁平叢集編號。

另請參閱

scipy.spatial.distance.pdist

成對距離度量

註解

此函式與 MATLAB 函式 clusterdata 類似。

範例

>>> from scipy.cluster.hierarchy import fclusterdata

這是一個方便的方法,它抽象化了在典型的 SciPy 階層式分群工作流程中執行的所有步驟。

>>> 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 和預設設定)是四個叢集,每個叢集包含三個資料點。