scipy.cluster.hierarchy.

inconsistent#

scipy.cluster.hierarchy.inconsistent(Z, d=2)[source]#

计算链接矩阵的不一致性统计量。

参数:
Zndarray

The \((n-1)\) by 4 matrix encoding the linkage (hierarchical clustering). See linkage documentation for more information on its form.

dint, optional

非单例簇以下最多 d 层的链接数。

返回:
Rndarray

一个 \((n-1)\) 行 4 列的矩阵,其中第 i 行包含非单例簇 i 的链接统计量。 链接统计量是根据簇 i 以下 \(d\) 层的链接高度计算得出的。 R[i,0]R[i,1] 分别是链接高度的均值和标准差; R[i,2] 是计算中包含的链接数; R[i,3] 是不一致性系数,

\[\frac{\mathtt{Z[i,2]} - \mathtt{R[i,0]}} {R[i,1]}\]

说明

此函数的功能类似于 MATLAB(TM) 的 inconsistent 函数。

inconsistent 除了 NumPy 之外,还实验性地支持与 Python Array API Standard 兼容的后端。请考虑通过设置环境变量 SCIPY_ARRAY_API=1 并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)的组合。

CPU

GPU

NumPy

不适用

CuPy

不适用

PyTorch

JAX

Dask

⚠️ 合并块

不适用

有关更多信息,请参阅 对数组 API 标准的支持

示例

>>> 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]])