scipy.cluster.hierarchy.

fclusterdata#

scipy.cluster.hierarchy.fclusterdata(X, t, критерий='inconsistent', метрика='euclidean', глубина=2, метод='single', R=None)[источник]#

Кластеризация данных наблюдений с использованием заданной метрики.

Кластеризует исходные наблюдения в матрице данных n-на-m X (n наблюдений в m измерениях), используя евклидову метрику расстояния для вычисления расстояний между исходными наблюдениями, выполняет иерархическую кластеризацию с использованием алгоритма одиночной связи и формирует плоские кластеры с использованием метода несоответствия с t как пороговое значение отсечки.

Одномерный массив T длины n возвращается. T[i] является индексом плоского кластера, к которому принадлежит исходное наблюдение i принадлежит.

Параметры:
X(N, M) ndarray

Матрица данных N на M с N наблюдениями в M измерениях.

tскаляр
Для критериев 'inconsistent', 'distance' или 'monocrit',

это порог, применяемый при формировании плоских кластеров.

Для критериев 'maxclust' или 'maxclust_monocrit',

это будет максимальное количество запрошенных кластеров.

критерийstr, optional

Определяет критерий для формирования плоских кластеров. Допустимые значения: 'inconsistent' (по умолчанию), 'distance' или 'maxclust' алгоритмы формирования кластеров. См. fcluster для описаний.

метрикаstr или функция, опционально

Метрика расстояния для вычисления попарных расстояний. См. distance.pdist для описаний и связи для проверки совместимости с методом связи.

глубинаint, необязательный

Максимальная глубина для вычисления несоответствия. См. inconsistent для получения дополнительной информации.

методstr, optional

Метод связывания для использования (single, complete, average, weighted, median centroid, ward). См. linkage для получения дополнительной информации. По умолчанию "single".

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

Матрица несогласованности. Она будет вычислена при необходимости, если не передана.

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

Вектор длины n. T[i] - номер плоского кластера, к которому принадлежит исходное наблюдение i.

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

scipy.spatial.distance.pdist

метрики попарных расстояний

Примечания

Эта функция аналогична функции MATLAB clusterdata.

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

Библиотека

CPU

GPU

NumPy

н/д

CuPy

н/д

PyTorch

JAX

⚠️ нет JIT

Dask

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

н/д

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

Примеры

>>> from scipy.cluster.hierarchy import fclusterdata

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

  • Преобразуйте входные данные в сжатую матрицу с scipy.spatial.distance.pdist.

  • Применить метод кластеризации.

  • Получение плоских кластеров при пользовательском пороге расстояния t используя scipy.cluster.hierarchy.fcluster.

>>> 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]]
>>> fclusterdata(X, t=1)
array([3, 3, 3, 4, 4, 4, 2, 2, 2, 1, 1, 1], dtype=int32)

Выходные данные здесь (для набора данных X, порог расстояния t, и настройки по умолчанию) — это четыре кластера с тремя точками данных в каждом.