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
Tder Längenwird zurückgegeben.T[i]ist der Index des flachen Clusters, zu dem die ursprüngliche Beobachtungigehö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
fclusterfür Beschreibungen.- metricstr oder Funktion, optional
Die Distanzmetrik zur Berechnung paarweiser Abstände. Siehe
distance.pdistfü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
inconsistentfür weitere Informationen.- methodstr, optional
Die zu verwendende Linkage-Methode (single, complete, average, weighted, median centroid, ward). Siehe
linkagefü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.pdistPaarweise Distanzmetriken
Hinweise
Diese Funktion ist der MATLAB-Funktion
clusterdataähnlich.fclusterdatahat 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 UmgebungsvariableSCIPY_ARRAY_API=1setzen 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.
Transformiert die Eingabedaten in eine kondensierte Matrix mit
scipy.spatial.distance.pdist.Wendet eine Clustering-Methode an.
Ermittelt flache Cluster bei einem vom Benutzer definierten Distanzschwellenwert
tmithilfe vonscipy.cluster.hierarchy.fcluster.
>>> 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 Distanzschwellenwerttund die Standardeinstellungen) sind vier Cluster mit jeweils drei Datenpunkten.