HDBSCAN
- classsklearn.cluster.HDBSCAN(min_cluster_size=5, min_samples=None, cluster_selection_epsilon=0.0, max_cluster_size=None, metric='euclidean', metric_params=None, alpha=1.0, algorithm='auto', leaf_size=40, n_jobs=None, cluster_selection_method='eom', allow_single_cluster=False, store_centers=None, copy=False)[source]
-
Кластеризация данных с использованием иерархической кластеризации на основе плотности.
HDBSCAN - Иерархическая кластеризация на основе плотности пространственных приложений с шумом. Выполняет
DBSCANпо различным значениям epsilon и интегрирует результат, чтобы найти кластеризацию, которая обеспечивает наилучшую устойчивость по отношению к epsilon. Это позволяет HDBSCAN находить кластеры с различной плотностью (в отличие отDBSCAN) и быть более устойчивым к выбору параметров. Подробнее см. в Руководстве пользователя.Пример использования HDBSCAN, а также сравнение с
DBSCAN, см. в примере построения графиков.Добавлен в версии 1.3.
- Параметры:
-
- min_cluster_sizeint, по умолчанию=5
-
Минимальное количество образцов в группе для того, чтобы группа считалась кластером; группы, меньшие этого размера, будут оставлены как шум.
- min_samplesint, по умолчанию=None
-
Параметр
kдля вычисления расстояния между точкойx_pи ее k-ой ближайшей соседней точкой. КогдаNone, по умолчаниюmin_cluster_size. - cluster_selection_epsilonfloat, по умолчанию=0.0
-
Пороговое значение расстояния. Кластеры ниже этого значения будут объединены. См. [5] для получения дополнительной информации.
- max_cluster_sizeint, по умолчанию=None
-
Ограничение размера кластеров, возвращаемых алгоритмом выбора кластеров
"eom". Ограничений нет, еслиmax_cluster_size=None. Не имеет эффекта, еслиcluster_selection_method="leaf". - metricstr или callable, по умолчанию=’euclidean’
-
Метрика, используемая для вычисления расстояния между объектами в массиве признаков.
- Если метрика является строкой или вызываемым объектом, она должна быть одним из вариантов, разрешенных
pairwise_distancesдля параметра метрики. - Если метрика равна “precomputed”, X предполагается матрицей расстояний и должна быть квадратной.
- Если метрика является строкой или вызываемым объектом, она должна быть одним из вариантов, разрешенных
- metric_paramsdict, по умолчанию=None
-
Аргументы, передаваемые в метрику расстояния.
- alphafloat, по умолчанию=1.0
-
Параметр масштабирования расстояния, используемый в устойчивой связности по единственному объекту. См. [3] для получения дополнительной информации.
- algorithm{“auto”, “brute”, “kd_tree”, “ball_tree”}, по умолчанию=”auto”
-
Конкретный алгоритм для вычисления расстояний до опорных точек; По умолчанию он установлен в
"auto", который пытается использовать деревоKDTree, если это возможно, в противном случае использует деревоBallTree. Оба алгоритма"kd_tree"и"ball_tree"используют оценщикNearestNeighbors.Если
X, переданные во времяfit, являются разреженными илиmetricнедопустимы дляKDTreeиBallTree, то он переходит к использованию алгоритма"brute". - leaf_sizeint, по умолчанию=40
-
Размер листа для деревьев, ответственных за быстрый поиск ближайших соседей, когда в качестве алгоритмов опорных расстояний используются KDTree или BallTree. Большой размер набора данных и малый
leaf_sizeмогут привести к чрезмерному использованию памяти. Если у вас заканчивается память, рассмотрите возможность увеличения параметраleaf_size. Игнорируется дляalgorithm="brute". - n_jobsint, по умолчанию=None
-
Количество задач для параллельного выполнения вычисления расстояний.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. См. Словарь для получения дополнительной информации. - cluster_selection_method{“eom”, “leaf”}, по умолчанию=”eom”
-
Метод, используемый для выбора кластеров из сжатого дерева. Стандартный подход для HDBSCAN* состоит в использовании алгоритма «избыток массы» (
"eom") для поиска наиболее устойчивых кластеров. В качестве альтернативы, можно выбрать кластеры на листьях дерева — это обеспечивает наиболее точные и однородные кластеры. - allow_single_clusterbool, по умолчанию=False
-
По умолчанию HDBSCAN* не будет генерировать единственный кластер, установка этого параметра в True переопределит это и позволит получать результаты с одним кластером в том случае, если вы считаете, что это допустимый результат для вашего набора данных.
- store_centersstr, по умолчанию=None
-
Какие, если таковые имеются, центры кластеров вычислять и хранить. Варианты:
-
None, который не вычисляет и не хранит никаких центров. -
"centroid", который вычисляет центр, беря взвешенное среднее значение их положений. Обратите внимание, что алгоритм использует евклидову метрику и не гарантирует, что результат будет наблюдаемой точкой данных. -
"medoid", который вычисляет центр, беря точку в наборе данных, в котором минимизируется расстояние до всех других точек в кластере. Это медленнее, чем «центр», поскольку требует вычисления дополнительных парных расстояний между точками одного кластера, но гарантирует, что результат будет наблюдаемой точкой данных. Медиана также хорошо определена для произвольных метрик и не зависит от евклидовой метрики. -
"both", который вычисляет и хранит оба вида центров.
-
- copybool, по умолчанию=False
-
Если
copy=True, всякий раз, когда будут произведены изменения на месте, которые перезапишут данные, переданные в fit, сначала будет создана копия, гарантирующая, что исходные данные останутся неизменными. В настоящее время это применяется только, когдаmetric="precomputed", при передаче плотного массива или разреженной CSR-матрицы и приalgorithm="brute".
- Атрибуты:
-
- labels_ndarray формы (n_samples,)
-
Метки кластеров для каждой точки в наборе данных, переданном в fit. Выбросы помечены следующим образом:
- Шумные образцы получают метку -1.
- Образцы с бесконечными элементами (+/- np.inf) получают метку -2.
- Образцы с пропущенными данными получают метку -3, даже если у них также есть бесконечные элементы.
- probabilities_ndarray формы (n_samples,)
-
Сила, с которой каждый образец является членом своего назначенного кластера.
- Кластеризованные образцы имеют вероятности, пропорциональные степени, в которой они сохраняются как часть кластера.
- Шумные образцы имеют вероятность ноль.
- Образцы с бесконечными элементами (+/- np.inf) имеют вероятность 0.
- Образцы с пропущенными данными имеют вероятность
np.nan.
- n_features_in_int
-
Количество признаков, увиденных во время fit.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Имена признаков, увиденных во время fit. Определены только тогда, когда
Xимеет имена признаков, которые все являются строками. - centroids_ndarray формы (n_clusters, n_features)
-
Коллекция, содержащая центр каждого кластера, вычисленный в соответствии со стандартной евклидовой метрикой. Центры могут выпадать «вне» своих кластеров, если сами кластеры не выпуклые.
Обратите внимание, что
n_clustersучитывает только кластеры, не являющиеся выбросами. То есть метки-1, -2, -3для кластеров-выбросов исключаются. - medoids_ndarray формы (n_clusters, n_features)
-
Коллекция, содержащая медиану каждого кластера, вычисленную в соответствии с любой переданной метрикой для параметра
metric. Медианы представляют собой точки в исходном кластере, которые минимизируют среднее расстояние до всех других точек в этом кластере в соответствии с выбранной метрикой. Их можно рассматривать как результат проекции центра, основанного наmetric, обратно на кластер.Обратите внимание, что
n_clustersучитывает только кластеры, не являющиеся выбросами. То есть метки-1, -2, -3для кластеров-выбросов исключаются.
См. также
Примечания
Параметр
min_samplesвключает саму точку, в то время как реализация в scikit-learn-contrib/hdbscan этого не делает. Чтобы получить одинаковые результаты в обоих версиях, значениеmin_samplesздесь должно быть на 1 больше, чем значение, используемое в scikit-learn-contrib/hdbscan.Ссылки
Примеры
>>> import numpy as np >>> from sklearn.cluster import HDBSCAN >>> from sklearn.datasets import load_digits >>> X, _ = load_digits(return_X_y=True) >>> hdb = HDBSCAN(min_cluster_size=20) >>> hdb.fit(X) HDBSCAN(min_cluster_size=20) >>> hdb.labels_.shape == (X.shape[0],) True >>> np.unique(hdb.labels_).tolist() [-1, 0, 1, 2, 3, 4, 5, 6, 7]
- dbscan_clustering(cut_distance, min_cluster_size=5)[source]
-
Возвращает кластеризацию, заданную DBSCAN без граничных точек.
Возвращает кластеризацию, которая эквивалентна запуску DBSCAN* для конкретного значения cut_distance (или epsilon). DBSCAN* можно рассматривать как DBSCAN без граничных точек. Таким образом, эти результаты могут незначительно отличаться от
cluster.DBSCANиз-за различий в реализации по отношению к не-ядерным точкам.Это также можно рассматривать как плоскую кластеризацию, полученную из постоянного значения высоты отсечения на дереве одиночной связи.
Это представляет результат выбора значения отсечения для устойчивой кластеризации с помощью метода одиночной связи.
min_cluster_sizeпозволяет плоской кластеризации объявлять шумовые точки (и кластеры меньшеmin_cluster_size).- Параметры:
-
- cut_distancefloat
-
Значение отсечения взаимного расстояния достижимости для генерации плоской кластеризации.
- min_cluster_sizeint, по умолчанию=5
-
Кластеры, меньшие этого значения, будут называться «шумом» и останутся некластеризованными в результирующей плоской кластеризации.
- Возвращаемое значение:
-
- labelsndarray формы (n_samples,)
-
Массив меток кластеров, по одной на каждую точку данных. Выбросы помечаются следующим образом:
- Шумные образцы получают метку -1.
- Образцы с бесконечными значениями (+/- np.inf) получают метку -2.
- Образцы с отсутствующими данными получают метку -3, даже если у них также есть бесконечные значения.
- fit(X, y=None)[source]
-
Поиск кластеров на основе иерархической кластеризации по плотности.
- Параметры:
-
- X{array-like, sparse matrix} формы (n_samples, n_features), или ndarray формы (n_samples, n_samples)
-
Массив признаков или массив расстояний между образцами, если
metric='precomputed'. - yNone
-
Игнорируется.
- Возвращаемое значение:
-
- selfобъект
-
Возвращает self.
- fit_predict(X, y=None)[source]
-
Кластеризация X и возвращение соответствующих меток кластеров.
- Параметры:
-
- X{array-like, sparse matrix} формы (n_samples, n_features), или ndarray формы (n_samples, n_samples)
-
Массив признаков или массив расстояний между образцами, если
metric='precomputed'. - yNone
-
Игнорируется.
- Возвращаемое значение:
-
- yndarray формы (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.HDBSCAN.html