scipy.cluster.hierarchy.

maxinconsts#

scipy.cluster.hierarchy.maxinconsts(Z, R)[Quelle]#

Gibt den maximalen Inkonsistenzkoeffizienten für jeden Nicht-Singleton-Cluster und seine Kinder zurück.

Parameter:
Zndarray

Die hierarchische Clusterbildung, kodiert als Matrix. Weitere Informationen finden Sie unter linkage.

Rndarray

Die Inkonsistenzmatrix.

Rückgabe:
MIndarray

Ein monotoner Numpy-Array von Doubles der Größe (n-1).

Siehe auch

linkage

für eine Beschreibung, was eine Linkage-Matrix ist.

inconsistent

für die Erstellung einer Inkonsistenzmatrix.

Hinweise

maxinconsts hat experimentelle Unterstützung für Backends, die mit dem Python Array API Standard kompatibel sind, 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 aus Backend und Gerät (oder anderer Fähigkeit) werden unterstützt.

Bibliothek

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

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 median, inconsistent, maxinconsts
>>> from scipy.spatial.distance import pdist

Gegeben ist ein Datensatz X, auf den wir eine Clustering-Methode anwenden können, um eine Linkage-Matrix Z zu erhalten. scipy.cluster.hierarchy.inconsistent kann auch verwendet werden, um die Inkonsistenzmatrix R zu erhalten, die mit diesem Clustering-Prozess verbunden ist.

>>> 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 = median(pdist(X))
>>> R = inconsistent(Z)
>>> Z
array([[ 0.        ,  1.        ,  1.        ,  2.        ],
       [ 3.        ,  4.        ,  1.        ,  2.        ],
       [ 9.        , 10.        ,  1.        ,  2.        ],
       [ 6.        ,  7.        ,  1.        ,  2.        ],
       [ 2.        , 12.        ,  1.11803399,  3.        ],
       [ 5.        , 13.        ,  1.11803399,  3.        ],
       [ 8.        , 15.        ,  1.11803399,  3.        ],
       [11.        , 14.        ,  1.11803399,  3.        ],
       [18.        , 19.        ,  3.        ,  6.        ],
       [16.        , 17.        ,  3.5       ,  6.        ],
       [20.        , 21.        ,  3.25      , 12.        ]])
>>> R
array([[1.        , 0.        , 1.        , 0.        ],
       [1.        , 0.        , 1.        , 0.        ],
       [1.        , 0.        , 1.        , 0.        ],
       [1.        , 0.        , 1.        , 0.        ],
       [1.05901699, 0.08346263, 2.        , 0.70710678],
       [1.05901699, 0.08346263, 2.        , 0.70710678],
       [1.05901699, 0.08346263, 2.        , 0.70710678],
       [1.05901699, 0.08346263, 2.        , 0.70710678],
       [1.74535599, 1.08655358, 3.        , 1.15470054],
       [1.91202266, 1.37522872, 3.        , 1.15470054],
       [3.25      , 0.25      , 3.        , 0.        ]])

Hier kann scipy.cluster.hierarchy.maxinconsts verwendet werden, um den Maximalwert der Inkonsistenzstatistik (die letzte Spalte von R) für jeden Nicht-Singleton-Cluster und seine Kinder zu berechnen.

>>> maxinconsts(Z, R)
array([0.        , 0.        , 0.        , 0.        , 0.70710678,
       0.70710678, 0.70710678, 0.70710678, 1.15470054, 1.15470054,
       1.15470054])