scipy.cluster.hierarchy.

to_tree#

scipy.cluster.hierarchy.to_tree(Z, rd=False)[Quelle]#

Konvertiert eine Linkage-Matrix in ein einfach zu verwendendes Baumobjekt.

Die Referenz auf das Wurzel-ClusterNode-Objekt wird (standardmäßig) zurückgegeben.

Jedes ClusterNode-Objekt hat ein left, right, dist, id und count Attribut. Die Attribute left und right verweisen auf ClusterNode-Objekte, die zur Erzeugung des Clusters kombiniert wurden. Wenn beide None sind, dann ist das ClusterNode-Objekt ein Blattknoten, sein Zähler muss 1 sein und seine Distanz ist bedeutungslos, wird aber auf 0 gesetzt.

Hinweis: Diese Funktion wird aus Bequemlichkeitsgründen für den Benutzer der Bibliothek bereitgestellt. ClusterNodes werden nicht als Eingabe für Funktionen in dieser Bibliothek verwendet.

Parameter:
Zndarray

Die Linkage-Matrix in richtiger Form (siehe Dokumentation der Funktion linkage).

rdbool, optional

Wenn False (Standard), wird eine Referenz auf das Wurzel-ClusterNode-Objekt zurückgegeben. Andernfalls wird ein Tupel (r, d) zurückgegeben. r ist eine Referenz auf den Wurzelknoten, während d eine Liste von ClusterNode-Objekten ist - eines pro ursprünglichem Eintrag in der Linkage-Matrix plus Einträge für alle Clustering-Schritte. Wenn eine Cluster-ID kleiner ist als die Anzahl der Stichproben n in den Daten, die die Linkage-Matrix beschreibt, dann entspricht sie einem Singleton-Cluster (Blattknoten). Siehe linkage für weitere Informationen über die Zuweisung von Cluster-IDs zu Clustern.

Rückgabe:
treeClusterNode oder Tupel (ClusterNode, Liste von ClusterNode)

Wenn rd False ist, ein ClusterNode. Wenn rd True ist, eine Liste der Länge 2*n - 1, wobei n die Anzahl der Stichproben ist. Siehe die Beschreibung von rd oben für weitere Details.

Hinweise

to_tree verfügt über 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 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

⚠️ kein JIT

Dask

⚠️ berechnet Graph

n/a

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

Beispiele

>>> import numpy as np
>>> from scipy.cluster import hierarchy
>>> rng = np.random.default_rng()
>>> x = rng.random((5, 2))
>>> Z = hierarchy.linkage(x)
>>> hierarchy.to_tree(Z)
<scipy.cluster.hierarchy.ClusterNode object at ...
>>> rootnode, nodelist = hierarchy.to_tree(Z, rd=True)
>>> rootnode
<scipy.cluster.hierarchy.ClusterNode object at ...
>>> len(nodelist)
9