Spec-Zone.ru › scikit-learn

AgglomerativeClustering

classsklearn.cluster.AgglomerativeClustering(n_clusters=2, *, metric='euclidean', memory=None, connectivity=None, compute_full_tree='auto', linkage='ward', distance_threshold=None, compute_distances=False)[исходный код]

Агломеративная кластеризация.

Рекурсивно объединяет пары кластеров выборки; использует расстояние между кластерами.

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

Параметры:
n_clustersint или None, по умолчанию=2

Количество кластеров, которые нужно найти. Должно быть None, если distance_threshold не равно None.

metricstr или вызываемый объект, по умолчанию=”euclidean”

Метрика, используемая для вычисления расстояния между кластерами. Может принимать значения “euclidean”, “l1”, “l2”, “manhattan”, “cosine” или “precomputed”. Если linkage равен “ward”, допускаются только “euclidean” и “l2”. Если указано “precomputed”, в метод fit необходимо передать матрицу расстояний. Если connectivity равен None, linkage равен “single”, а affinity не равен “precomputed”, можно указать любую допустимую метрику попарных расстояний.

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

Добавлено в версии 1.2.

memorystr или объект с интерфейсом joblib.Memory, по умолчанию=None

Используется для кэширования результатов построения дерева. По умолчанию кэширование не выполняется. Если задана строка, она задаёт путь к каталогу кэша.

connectivityобъект, подобный массиву, разреженная матрица или вызываемый объект, по умолчанию=None

Матрица связности. Для каждого образца определяет соседние образцы в соответствии с заданной структурой данных. Это может быть сама матрица связности или вызываемый объект, преобразующий данные в матрицу связности, например, полученную из kneighbors_graph. Значение по умолчанию — None, то есть алгоритм иерархической кластеризации не учитывает структуру.

Пример матрицы связности с использованием kneighbors_graph см. в разделе Иерархическая кластеризация с учётом структуры и без неё.

compute_full_tree‘auto’ или bool, по умолчанию=’auto’

Досрочно остановить построение дерева на уровне n_clusters. Это полезно для сокращения времени вычислений, если количество кластеров невелико по сравнению с количеством образцов. Этот параметр используется только при задании матрицы связности. Также обратите внимание: если менять количество кластеров и использовать кэширование, может быть выгодно построить дерево полностью. Должно быть True, если distance_threshold не равно None. По умолчанию compute_full_tree имеет значение “auto”, что эквивалентно True, если distance_threshold не равно None или если n_clusters меньше максимума из 100 и 0.02 * n_samples. В противном случае “auto” эквивалентно False.

linkage{‘ward’, ‘complete’, ‘average’, ‘single’}, по умолчанию=’ward’

Критерий объединения кластеров. Он определяет, какое расстояние использовать между группами наблюдений. Алгоритм объединяет пары кластеров, для которых этот критерий минимален.

  • ‘ward’ минимизирует дисперсию объединяемых кластеров.
  • ‘average’ использует среднее расстояние между всеми наблюдениями двух групп.
  • ‘complete’ или ‘maximum’ использует максимальное расстояние между всеми наблюдениями двух групп.
  • ‘single’ использует минимальное расстояние между всеми наблюдениями двух групп.

Добавлено в версии 0.20: Добавлен параметр ‘single’

Примеры сравнения различных критериев linkage см. в разделе Сравнение различных методов иерархического объединения на тестовых наборах данных.

distance_thresholdfloat, по умолчанию=None

Пороговое расстояние между кластерами, при достижении или превышении которого объединение кластеров прекращается. Если значение не None, n_clusters должно быть равно None, а compute_full_tree должно быть равно True.

Добавлено в версии 0.21.

compute_distancesbool, по умолчанию=False

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

Добавлено в версии 0.24.

Пример визуализации дендрограммы см. в разделе Построение дендрограммы иерархической кластеризации.

Атрибуты:
n_clusters_int

Количество кластеров, найденных алгоритмом. Если distance_threshold=None, оно будет равно заданному значению n_clusters.

labels_ndarray формы (n_samples)

Метки кластеров для каждой точки.

n_leaves_int

Количество листьев в иерархическом дереве.

n_connected_components_int

Оценочное количество связных компонент графа.

Добавлено в версии 0.21: n_connected_components_ добавлен вместо n_components_.

n_features_in_int

Количество признаков, обнаруженных во время вызова fit.

Добавлено в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Названия признаков, обнаруженные во время вызова fit. Определяется, только если X содержит названия признаков, представленные строками.

Добавлено в версии 1.0.

children_объект, подобный массиву, формы (n_samples-1, 2)

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

distances_объект, подобный массиву, формы (n_nodes-1,)

Расстояния между узлами в соответствующем месте children_. Вычисляется, только если используется distance_threshold или для compute_distances задано значение True.

См. также

FeatureAgglomeration

Агломеративная кластеризация признаков вместо образцов.

ward_tree

Иерархическая кластеризация с методом объединения Ward.

Примеры

>>> from sklearn.cluster import AgglomerativeClustering
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [4, 2], [4, 4], [4, 0]])
>>> clustering = AgglomerativeClustering().fit(X)
>>> clustering
AgglomerativeClustering()
>>> clustering.labels_
array([1, 1, 1, 0, 0, 0])

Сравнение агломеративной кластеризации с другими алгоритмами кластеризации см. в разделе Сравнение различных алгоритмов кластеризации на тестовых наборах данных

fit(X, y=None)[исходный код]

Обучает модель иерархической кластеризации по признакам или матрице расстояний.

Параметры:
Xобъект, подобный массиву, формы (n_samples, n_features) или (n_samples, n_samples)

Обучающие образцы для кластеризации или расстояния между образцами, если metric='precomputed'.

yИгнорируется

Не используется; присутствует здесь по соглашению для единообразия API.

Возвращает:
selfобъект

Возвращает обученный экземпляр.

fit_predict(X, y=None)[исходный код]

Обучает модель и возвращает результат отнесения каждого образца к кластеру.

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

Параметры:
Xобъект, подобный массиву, формы (n_samples, n_features) или (n_samples, n_samples)

Обучающие образцы для кластеризации или расстояния между образцами, если affinity='precomputed'.

yИгнорируется

Не используется; присутствует здесь по соглашению для единообразия API.

Возвращает:
labelsndarray формы (n_samples,)

Метки кластеров.

get_metadata_routing()[исходный код]

Получает настройки маршрутизации метаданных этого объекта.

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

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

Объект MetadataRequest, содержащий сведения о маршрутизации.

get_params(deep=True)[исходный код]

Получает параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, возвращает параметры этого оценщика и содержащихся в нём объектов, которые являются оценщиками.

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

Имена параметров, сопоставленные с их значениями.

set_params(**params)[исходный код]

Задаёт параметры этого оценщика.

Метод работает как с простыми оценщиками, так и с вложенными объектами (например, Pipeline). У последних параметры имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

Примеры из галереи

Агломеративная кластеризация с различными метриками

Построение дендрограммы иерархической кластеризации

Сравнение различных алгоритмов кластеризации на тестовых наборах данных

Пример структурированной иерархической кластеризации Ward на изображении монет

Различные варианты агломеративной кластеризации двумерного представления цифр

Индуктивная кластеризация

Сравнение различных методов иерархического объединения на тестовых наборах данных

Иерархическая кластеризация с учётом структуры и без неё

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

Spec-Zone.ru

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