scipy.cluster.hierarchy.

from_mlab_linkage#

scipy.cluster.hierarchy.from_mlab_linkage(Z)[источник]#

Преобразовать матрицу кластеризации, сгенерированную MATLAB(TM), в новую матрицу кластеризации, совместимую с этим модулем.

Преобразование делает две вещи:

  • индексы преобразуются из 1..N to 0..(N-1) форма, и

  • четвертый столбец Z[:,3] добавляется там, где Z[i,3] представляет количество исходных наблюдений (листьев) в несинглтонном кластере i.

Эта функция полезна при загрузке связей из устаревших файлов данных, сгенерированных MATLAB.

Параметры:
Zndarray

Матрица связей, сгенерированная MATLAB(TM).

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

Матрица связей, совместимая с scipy.cluster.hierarchy.

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

linkage

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

to_mlab_linkage

преобразование из формата SciPy в MATLAB.

Примечания

from_mlab_linkage имеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окружения SCIPY_ARRAY_API=1 и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).

Библиотека

CPU

GPU

NumPy

н/д

CuPy

н/д

PyTorch

JAX

Dask

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

н/д

См. Поддержка стандарта array API для получения дополнительной информации.

Примеры

>>> import numpy as np
>>> from scipy.cluster.hierarchy import ward, from_mlab_linkage

Дана матрица связей в формате MATLAB mZ, мы можем использовать scipy.cluster.hierarchy.from_mlab_linkage для импорта в формат SciPy:

>>> mZ = np.array([[1, 2, 1], [4, 5, 1], [7, 8, 1],
...                [10, 11, 1], [3, 13, 1.29099445],
...                [6, 14, 1.29099445],
...                [9, 15, 1.29099445],
...                [12, 16, 1.29099445],
...                [17, 18, 5.77350269],
...                [19, 20, 5.77350269],
...                [21, 22,  8.16496581]])
>>> Z = from_mlab_linkage(mZ)
>>> Z
array([[  0.        ,   1.        ,   1.        ,   2.        ],
       [  3.        ,   4.        ,   1.        ,   2.        ],
       [  6.        ,   7.        ,   1.        ,   2.        ],
       [  9.        ,  10.        ,   1.        ,   2.        ],
       [  2.        ,  12.        ,   1.29099445,   3.        ],
       [  5.        ,  13.        ,   1.29099445,   3.        ],
       [  8.        ,  14.        ,   1.29099445,   3.        ],
       [ 11.        ,  15.        ,   1.29099445,   3.        ],
       [ 16.        ,  17.        ,   5.77350269,   6.        ],
       [ 18.        ,  19.        ,   5.77350269,   6.        ],
       [ 20.        ,  21.        ,   8.16496581,  12.        ]])

Как и ожидалось, матрица связей Z возвращаемый включает дополнительный столбец, подсчитывающий количество исходных выборок в каждом кластере. Также все индексы кластеров уменьшены на 1 (формат MATLAB использует индексацию с 1, тогда как SciPy использует индексацию с 0).