АгломеративноеКластерирование
- классsklearn.cluster.AgglomerativeClustering(n_clusters=2, *, metric='euclidean', memory=None, connectivity=None, compute_full_tree='auto', linkage='ward', distance_threshold=None, compute_distances=False)[source]
-
Агломерационная кластеризация.
Повторно объединяет пары кластеров данных выборок; использует расстояние связи.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- n_clustersint или None, по умолчанию=2
-
Количество кластеров для поиска. Оно должно быть
Noneеслиdistance_thresholdнеNone. - metricstr или вызываемый объект, по умолчанию=”euclidean”
-
Метрика, используемая для вычисления связи. Может быть “euclidean”, “l1”, “l2”, “manhattan”, “cosine” или “precomputed”. Если linkage равен “ward”, то принимается только “euclidean”. Если “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’ linkage используют максимальные расстояния между всеми точками наблюдения двух наборов.
- ‘single’ использует минимальные расстояния между всеми точками наблюдения двух наборов.
Добавлена в версии 0.20: Добавлен параметр ‘single’
Примеры сравнения разных критериев
linkage, см. Сравнение различных методов иерархической связи на наборах данных toy. - 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_массив формы (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_массив формы (
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-
Иерархическая кластеризация с linkage “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)[source]
-
Обучает иерархическую кластеризацию по признакам или матрице расстояний.
- Параметры:
-
- Xмассив-подобный объект, форма (n_samples, n_features) или (n_samples, n_samples)
-
Обучающие примеры для кластеризации или расстояния между примерами, если
metric='precomputed'. - yИгнорируется
-
Не используется, присутствует здесь для согласованности API по умолчанию.
- Возвращает:
-
- selfобъект
-
Возвращает обученный экземпляр.
- fit_predict(X, y=None)[source]
-
Подбор и возвращение результата присвоения кластера для каждой выборки.
В дополнение к подбору, этот метод также возвращает результат присвоения кластера каждой выборке в обучающем наборе.
- Параметры:
-
- Xмассив-подобный объект формы (n_samples, n_features) или (n_samples, n_samples)
-
Обучающие примеры для кластеризации или расстояния между примерами, если
affinity='precomputed'. - yИгнорируется
-
Не используется, присутствует здесь для согласованности API по соглашению.
- Возвращаемое значение:
-
- labelsмассив формы (n_samples,)
-
Метки кластеров.
- get_metadata_routing()[source]
-
Получение маршрутизации метаданных этого объекта.
Пожалуйста, обратитесь к Руководству пользователя, чтобы узнать, как работает механизм маршрутизации.
- Возвращаемое значение:
-
- routingMetadataRequest
-
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получение параметров этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращает параметры этого оценщика и содержащихся в нем подобъектов, которые являются оценщиками.
- Возвращаемое значение:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- set_params(**params)[source]
-
Установка параметров этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). Последние имеют параметры в формате<component>__<parameter>, что позволяет обновить каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращаемое значение:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.cluster.AgglomerativeClustering.html