scipy.cluster.hierarchy.

to_tree#

scipy.cluster.hierarchy.to_tree(Z, rd=False)[источник]#

Преобразовать матрицу связей в удобный для использования объект дерева.

Ссылка на корень ClusterNode возвращается объект (по умолчанию).

Каждый ClusterNode объект имеет left, right, dist, id, и count атрибут. Атрибуты left и right указывают на объекты ClusterNode, которые были объединены для создания кластера. Если оба равны None, то ClusterNode объект является листовым узлом, его счетчик должен быть 1, и его расстояние бессмысленно, но установлено в 0.

Примечание: Эта функция предоставлена для удобства пользователя библиотеки. ClusterNodes не используются в качестве входных данных для каких-либо функций в этой библиотеке.

Параметры:
Zndarray

Матрица связей в правильной форме (см. linkage документация функции).

rdbool, необязательно

Когда False (по умолчанию), ссылка на корень ClusterNode объект возвращается. В противном случае, кортеж (r, d) возвращается. r является ссылкой на корневой узел, в то время как d является списком ClusterNode объектов - по одному на каждую исходную запись в матрице связей плюс записи для всех шагов кластеризации. Если идентификатор кластера меньше количества выборок n в данных, которые описывает матрица связей, то это соответствует одиночному кластеру (листовому узлу). См. linkage для получения дополнительной информации о назначении идентификаторов кластеров кластерам.

Возвращает:
деревоClusterNode или кортеж (ClusterNode, список ClusterNode)

Если rd равно False, a ClusterNode. Если rd is True, список длины 2*n - 1, с n количество выборок. См. описание rd выше для более подробной информации.

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

linkage, is_valid_linkage, ClusterNode

Примечания

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

Библиотека

CPU

GPU

NumPy

н/д

CuPy

н/д

PyTorch

JAX

⚠️ нет JIT

⚠️ нет JIT

Dask

⚠️ вычисляет граф

н/д

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

Примеры

>>> import numpy as np
>>> from scipy.cluster import hierarchy
>>> rng = np.random.default_rng()
>>> x = rng.random((5, 2))
>>> Z = hierarchy.linkage(x)
>>> hierarchy.to_tree(Z)

>>> rootnode, nodelist = hierarchy.to_tree(Z, rd=True)
>>> rootnode

>>> len(nodelist)
9