scipy.cluster.hierarchy.

maxRstat#

scipy.cluster.hierarchy.maxRstat(Z, R, i)[источник]#

Возвращает максимальную статистику для каждого нетривиального кластера и его дочерних элементов.

Параметры:
Zarray_like

Иерархическая кластеризация, закодированная как матрица. Смотрите linkage для получения дополнительной информации.

Rarray_like

Матрица несоответствий.

iint

Столбец R для использования в качестве статистики.

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

Вычисляет максимальную статистику для i-го столбца матрицы несоответствия R для каждого неединичного кластера узла. MR[j] является максимумом по R[Q(j)-n, i], где Q(j) множество всех идентификаторов узлов, соответствующих узлам ниже и включая j.

Смотрите также

linkage

для описания того, что такое матрица связей.

inconsistent

для создания матрицы несоответствий.

Примечания

maxRstat имеет экспериментальную поддержку совместимых с 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 median, inconsistent, maxRstat
>>> from scipy.spatial.distance import pdist

Для заданного набора данных X, мы можем применить метод кластеризации для получения матрицы связей Z. scipy.cluster.hierarchy.inconsistent также может использоваться для получения матрицы несоответствий R связанный с этим процессом кластеризации:

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

scipy.cluster.hierarchy.maxRstat может использоваться для вычисления максимального значения каждого столбца R, для каждого неединичного кластера и его дочерних элементов:

>>> maxRstat(Z, R, 0)
array([1.        , 1.        , 1.        , 1.        , 1.05901699,
       1.05901699, 1.05901699, 1.05901699, 1.74535599, 1.91202266,
       3.25      ])
>>> maxRstat(Z, R, 1)
array([0.        , 0.        , 0.        , 0.        , 0.08346263,
       0.08346263, 0.08346263, 0.08346263, 1.08655358, 1.37522872,
       1.37522872])
>>> maxRstat(Z, R, 3)
array([0.        , 0.        , 0.        , 0.        , 0.70710678,
       0.70710678, 0.70710678, 0.70710678, 1.15470054, 1.15470054,
       1.15470054])