Anführer#
- scipy.cluster.hierarchy.leaders(Z, T)[Quelle]#
Gibt die Wurzelknoten in einer hierarchischen Clusterbildung zurück.
Gibt die Wurzelknoten in einer hierarchischen Clusterbildung zurück, die einem Schnitt entsprechen, der durch einen flachen Cluster-Zuweisungsvektor
Tdefiniert ist. Weitere Informationen zum Format vonTfinden Sie in der Funktionfcluster.Für jeden flachen Cluster \(j\) der \(k\) flachen Cluster, die im n-dimensionale flachen Cluster-Zuweisungsvektor
Trepräsentiert sind, findet diese Funktion den niedrigsten Clusterknoten \(i\) im Verknüpfungsbaum Z, so dass gilt:die Blatt-Nachfahren gehören nur zum flachen Cluster j (d. h.
T[p]==jfür alle \(p\) in \(S(i)\), wobei \(S(i)\) die Menge der Blatt-IDs der Nachfahren-Blattknoten mit Clusterknoten \(i\) ist)es existiert kein Blatt, das kein Nachfahre von \(i\) ist und auch zum Cluster \(j\) gehört (d. h.
T[q]!=jfür alle \(q\) nicht in \(S(i)\)). Wenn diese Bedingung verletzt ist, istTkein gültiger Cluster-Zuweisungsvektor, und es wird eine Ausnahme ausgelöst.
- Parameter:
- Zndarray
Die hierarchische Clusterbildung, kodiert als Matrix. Weitere Informationen finden Sie unter
linkage.- Tndarray
Der flache Cluster-Zuweisungsvektor.
- Rückgabe:
- Lndarray
Die Anführer-Verknüpfungsknoten-IDs, gespeichert als 1-D-Array mit k Elementen, wobei
kdie Anzahl der inTgefundenen flachen Cluster ist.L[j]=iist die Verknüpfungs-Clusterknoten-ID, die der Anführer des flachen Clusters mit der ID M[j] ist. Wenni < n, bezieht sichiauf eine ursprüngliche Beobachtung, andernfalls auf einen nicht-einzelnen Cluster.- Mndarray
Die Anführer-Verknüpfungsknoten-IDs, gespeichert als 1-D-Array mit k Elementen, wobei
kdie Anzahl der inTgefundenen flachen Cluster ist. Dies ermöglicht es, dass die Menge der flachen Cluster-IDs eine beliebige Menge vonkganzen Zahlen ist.Beispiel: Wenn
L[3]=2undM[3]=8, dann ist der Anführer des flachen Clusters mit der ID 8 der Verknüpfungsknoten 2.
Siehe auch
fclusterfür die Erstellung von flachen Cluster-Zuweisungen.
Hinweise
Array API-Unterstützung (experimentell): Diese Funktion gibt Arrays mit datenabhängiger Form zurück. In JAX ist dies zum Zeitpunkt der Erstellung dieser Dokumentation unmöglich, es innerhalb von @jax.jit auszuführen.
leadersverfü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 eine 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
⚠️ führt Chunks zusammen
n/a
Siehe Unterstützung für den Array API Standard für weitere Informationen.
Beispiele
>>> from scipy.cluster.hierarchy import ward, fcluster, leaders >>> from scipy.spatial.distance import pdist
Gegeben eine Verknüpfungsmatrix
Z– erhalten nach Anwendung einer Cluster-Methode auf einen DatensatzX– und ein flacher Cluster-ZuweisungsarrayT>>> 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]]
>>> Z = ward(pdist(X)) >>> Z array([[ 0. , 1. , 1. , 2. ], [ 3. , 4. , 1. , 2. ], [ 6. , 7. , 1. , 2. ], [ 9. , 10. , 1. , 2. ], [ 2. , 12. , 1.29099445, 3. ], [ 5. , 13. , 1.29099445, 3. ], [ 8. , 14. , 1.29099445, 3. ], [11. , 15. , 1.29099445, 3. ], [16. , 17. , 5.77350269, 6. ], [18. , 19. , 5.77350269, 6. ], [20. , 21. , 8.16496581, 12. ]])
>>> T = fcluster(Z, 3, criterion='distance') >>> T array([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4], dtype=int32)
scipy.cluster.hierarchy.leadersgibt die Indizes der Knoten im Dendrogramm zurück, die die Anführer jedes flachen Clusters sind>>> L, M = leaders(Z, T) >>> L array([16, 17, 18, 19], dtype=int32)
(denken Sie daran, dass die Indizes 0-11 auf die 12 Datenpunkte in
Xverweisen, während die Indizes 12-22 auf die 11 Zeilen vonZverweisen)scipy.cluster.hierarchy.leadersgibt auch die Indizes der flachen Cluster inTzurück>>> M array([1, 2, 3, 4], dtype=int32)