scipy.cluster.hierarchy.

fclusterdata#

scipy.cluster.hierarchy.fclusterdata(X, t, criterion='inconsistent', metric='euclidean', depth=2, method='single', R=None)[Quelle]#

Beobachtungsdaten mithilfe einer gegebenen Metrik clustern.

Clustert die ursprünglichen Beobachtungen in der N-durch-M-Datenmatrix X (N Beobachtungen in M Dimensionen) unter Verwendung der euklidischen Distanzmetrik zur Berechnung der Abstände zwischen den ursprünglichen Beobachtungen, führt hierarchisches Clustering mithilfe des Single-Linkage-Algorithmus durch und bildet flache Cluster mithilfe der Inkonsistenzmethode mit t als Schwellenwert.

Ein 1-D-Array T der Länge n wird zurückgegeben. T[i] ist der Index des flachen Clusters, zu dem die ursprüngliche Beobachtung i gehört.

Parameter:
X(N, M) ndarray

N-durch-M-Datenmatrix mit N Beobachtungen in M Dimensionen.

tSkalar
Für die Kriterien „inconsistent“, „distance“ oder „monocrit“

ist dies der Schwellenwert, der beim Bilden von flachen Clustern angewendet wird.

Für die Kriterien „maxclust“ oder „maxclust_monocrit“

wäre dies die maximal angeforderte Anzahl von Clustern.

criterionstr, optional

Gibt das Kriterium für die Bildung von flachen Clustern an. Gültige Werte sind „inconsistent“ (Standard), „distance“ oder „maxclust“ Clusterbildungsalgorithmen. Siehe fcluster für Beschreibungen.

metricstr oder Funktion, optional

Die Distanzmetrik zur Berechnung paarweiser Abstände. Siehe distance.pdist für Beschreibungen und zur Verknüpfung, um die Kompatibilität mit der Linkage-Methode zu überprüfen.

depthint, optional

Die maximale Tiefe für die Inkonsistenzberechnung. Siehe inconsistent für weitere Informationen.

methodstr, optional

Die zu verwendende Linkage-Methode (single, complete, average, weighted, median centroid, ward). Siehe linkage für weitere Informationen. Standard ist „single“.

Rndarray, optional

Die Inkonsistenzmatrix. Sie wird bei Bedarf berechnet, wenn sie nicht übergeben wird.

Rückgabe:
fclusterdatandarray

Ein Vektor der Länge n. T[i] ist die Nummer des flachen Clusters, zu dem die ursprüngliche Beobachtung i gehört.

Siehe auch

scipy.spatial.distance.pdist

Paarweise Distanzmetriken

Hinweise

Diese Funktion ist der MATLAB-Funktion clusterdata ähnlich.

fclusterdata hat experimentelle Unterstützung für Backends, die den Python Array API Standard unterstützen, zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie die Umgebungsvariable SCIPY_ARRAY_API=1 setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente bereitstellen. Die folgenden Kombinationen von Backend und Gerät (oder anderer Fähigkeit) werden unterstützt.

Bibliothek

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

⚠️ kein JIT

Dask

⚠️ berechnet Graph

n/a

Siehe Unterstützung für den Array API Standard für weitere Informationen.

Beispiele

>>> from scipy.cluster.hierarchy import fclusterdata

Dies ist eine praktische Methode, die alle Schritte eines typischen hierarchischen Clustering-Workflows von SciPy abstrahiert.

>>> 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)

Die Ausgabe hier (für den Datensatz X, den Distanzschwellenwert t und die Standardeinstellungen) sind vier Cluster mit jeweils drei Datenpunkten.