inconsistent#
- scipy.cluster.hierarchy.inconsistent(Z, d=2)[source]#
Calculate inconsistency statistics on a linkage matrix.
- Parameters:
- Zndarray
The \((n-1)\) by 4 matrix encoding the linkage (hierarchical clustering). See
linkage
documentation for more information on its form.- dint, optional
The number of links up to d levels below each non-singleton cluster.
- Returns:
- Rndarray
A \((n-1)\) by 4 matrix where the
i
’th row contains the link statistics for the non-singleton clusteri
. The link statistics are computed over the link heights for links \(d\) levels below the clusteri
.R[i,0]
andR[i,1]
are the mean and standard deviation of the link heights, respectively;R[i,2]
is the number of links included in the calculation; andR[i,3]
is the inconsistency coefficient,\[\frac{\mathtt{Z[i,2]} - \mathtt{R[i,0]}} {R[i,1]}\]
Notes
This function behaves similarly to the MATLAB(TM)
inconsistent
function.inconsistent
has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variableSCIPY_ARRAY_API=1
and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.Library
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
⛔
PyTorch
✅
⛔
JAX
✅
⛔
Dask
⚠️ merges chunks
n/a
See Support for the array API standard for more information.
Examples
>>> from scipy.cluster.hierarchy import inconsistent, linkage >>> from matplotlib import pyplot as plt >>> X = [[i] for i in [2, 8, 0, 4, 1, 9, 9, 0]] >>> Z = linkage(X, 'ward') >>> print(Z) [[ 5. 6. 0. 2. ] [ 2. 7. 0. 2. ] [ 0. 4. 1. 2. ] [ 1. 8. 1.15470054 3. ] [ 9. 10. 2.12132034 4. ] [ 3. 12. 4.11096096 5. ] [11. 13. 14.07183949 8. ]] >>> inconsistent(Z) array([[ 0. , 0. , 1. , 0. ], [ 0. , 0. , 1. , 0. ], [ 1. , 0. , 1. , 0. ], [ 0.57735027, 0.81649658, 2. , 0.70710678], [ 1.04044011, 1.06123822, 3. , 1.01850858], [ 3.11614065, 1.40688837, 2. , 0.70710678], [ 6.44583366, 6.76770586, 3. , 1.12682288]])