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экземпляр оценщика
-
Экземпляр оценщика.
Примеры из галереи
© 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