scipy.cluster.hierarchy.

несовместимый#

scipy.cluster.hierarchy.несовместимый(Z, d=2)[источник]#

Вычислить статистику несогласованности на матрице связей.

Параметры:
Zndarray

The \((n-1)\) матрицей 4 на 4, кодирующей связь (иерархическая кластеризация). См. linkage документацию для получения дополнительной информации о его форме.

dint, необязательный

Количество ссылок до d уровни ниже каждого несинглетного кластера.

Возвращает:
Rndarray

A \((n-1)\) на 4 матрица, где i’я строка содержит статистики связи для несинглетонного кластера i. Статистика связей вычисляется по высотам связей для связей \(d\) уровни ниже кластера i. 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 имеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окружения SCIPY_ARRAY_API=1 и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).

Библиотека

CPU

GPU

NumPy

н/д

CuPy

н/д

PyTorch

JAX

Dask

⚠️ объединяет блоки

н/д

См. Поддержка стандарта array 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]])