Spec-Zone.ru › scikit-learn

ward_tree

sklearn.cluster.ward_tree(X, *, connectivity=None, n_clusters=None, return_distance=False)[source]

Кластеризация Уорда на основе матрицы признаков.

Рекурсивно объединяет пары кластеров, минимально увеличивая внутрикластерную дисперсию.

В матрице инерции используется представление на основе Heapq.

Это структурированная версия, учитывающая некоторую топологическую структуру между образцами.

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

Параметры:
Xarray-like of shape (n_samples, n_features)

Матрица признаков, представляющая n_samples образцов для кластеризации.

connectivity{array-like, sparse matrix}, default=None

Матрица связности. Для каждого образца определяет соседние образцы в соответствии с заданной структурой данных. Предполагается, что матрица симметрична; используется только её верхняя треугольная часть. По умолчанию None, то есть алгоритм Уорда неструктурированный.

n_clustersint, default=None

n_clusters должно быть меньше n_samples. Досрочно остановить построение дерева на n_clusters. Это полезно для сокращения времени вычислений, если число кластеров невелико по сравнению с числом образцов. В этом случае полное дерево не вычисляется, поэтому выходной параметр ‘children’ имеет ограниченное применение, и предпочтительнее использовать выходной параметр ‘parents’. Этот параметр допустим только при указании матрицы связности.

return_distancebool, default=False

Если True, вернуть расстояние между кластерами.

Возвращает:
childrenndarray of shape (n_nodes-1, 2)

Потомки каждого нелистового узла. Значения меньше n_samples соответствуют листьям дерева, которыми являются исходные образцы. Узел i, больший или равный n_samples, является нелистовым и имеет потомков children_[i - n_samples]. Иначе говоря, на i-й итерации children[i][0] и children[i][1] объединяются, образуя узел n_samples + i.

n_connected_componentsint

Количество компонент связности графа.

n_leavesint

Количество листьев в дереве.

parentsndarray of shape (n_nodes,) or None

Родитель каждого узла. Возвращается только при указании матрицы связности; в противном случае возвращается ‘None’.

distancesndarray of shape (n_nodes-1,)

Возвращается только если return_distance установлено в True (для совместимости). Расстояния между центрами узлов. distances[i] соответствует взвешенному евклидову расстоянию между узлами children[i, 1] и children[i, 2]. Если узлы являются листьями дерева, то distances[i] — это их невзвешенное евклидово расстояние. Расстояния обновляются следующим образом (из scipy.hierarchy.linkage):

Новая запись \(d(u,v)\) вычисляется следующим образом:

\[d(u,v) = \sqrt{\frac{|v|+|s|} {T}d(v,s)^2 + \frac{|v|+|t|} {T}d(v,t)^2 - \frac{|v|} {T}d(s,t)^2}\]

где \(u\) — новый объединённый кластер, состоящий из кластеров \(s\) и \(t\), \(v\) — неиспользуемый кластер в лесу, \(T=|v|+|s|+|t|\), а \(|*|\) — мощность множества, заданного аргументом. Этот метод также известен как инкрементальный алгоритм.

Примеры

>>> import numpy as np
>>> from sklearn.cluster import ward_tree
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [4, 2], [4, 4], [4, 0]])
>>> children, n_connected_components, n_leaves, parents = ward_tree(X)
>>> children
array([[0, 1],
       [3, 5],
       [2, 6],
       [4, 7],
       [8, 9]])
>>> n_connected_components
1
>>> n_leaves
6

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.cluster.ward_tree.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API