scipy.cluster.hierarchy.

cut_tree#

scipy.cluster.hierarchy.cut_tree(Z, n_clusters=None, height=None)[Quellcode]#

Gibt den geschnittenen Baum für eine gegebene Linkage-Matrix Z zurück.

Parameter:
Zscipy.cluster.linkage Array

Die Linkage-Matrix.

n_clustersArray-ähnlich, optional

Anzahl der Cluster im Baum an der Schnittstelle.

heightArray-ähnlich, optional

Die Höhe, bei der der Baum geschnitten werden soll. Nur für ultrametrische Bäume möglich.

Rückgabe:
cutreeArray

Ein Array, das die Gruppenmitgliedschaft bei jedem Agglomerationsschritt anzeigt. D. h. bei einem vollständigen Schnittbaum ist im ersten Spalte jeder Datenpunkt in seinem eigenen Cluster. Im nächsten Schritt werden zwei Knoten zusammengeführt. Schließlich sind alle einzelnen und nicht einzelnen Cluster in einer Gruppe. Wenn n_clusters oder height angegeben werden, entsprechen die Spalten den Spalten von n_clusters oder height.

Hinweise

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

Bibliothek

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

Dask

n/a

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

Beispiele

>>> from scipy import cluster
>>> import numpy as np
>>> from numpy.random import default_rng
>>> rng = default_rng()
>>> X = rng.random((50, 4))
>>> Z = cluster.hierarchy.ward(X)
>>> cutree = cluster.hierarchy.cut_tree(Z, n_clusters=[5, 10])
>>> cutree[:10]
array([[0, 0],
       [1, 1],
       [2, 2],
       [3, 3],
       [3, 4],
       [2, 2],
       [0, 0],
       [1, 5],
       [3, 6],
       [4, 7]])  # random