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='warn')[исходный код]
-
Кластеризация данных с помощью иерархической кластеризации на основе плотности.
HDBSCAN — иерархическая пространственная кластеризация приложений на основе плотности с учетом шума. Выполняет
DBSCANпри различных значениях epsilon и объединяет результаты, чтобы найти кластеризацию с наилучшей устойчивостью при изменении epsilon. Это позволяет 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’
-
Метрика для вычисления расстояния между объектами в массиве признаков.
- Если metric — строка или вызываемый объект, она должна быть одной из метрик, разрешенных для параметра metric в
pairwise_distances. - Если metric имеет значение “precomputed”, предполагается, что X является матрицей расстояний; она должна быть квадратной.
- Если metric — строка или вызываемый объект, она должна быть одной из метрик, разрешенных для параметра metric в
- metric_paramsdict, по умолчанию=None
-
Аргументы, передаваемые метрике расстояния.
- alphafloat, по умолчанию=1.0
-
Параметр масштабирования расстояния, используемый в устойчивой кластеризации по одиночной связи. Дополнительные сведения см. в [3].
- algorithm{“auto”, “brute”, “kd_tree”, “ball_tree”}, по умолчанию=”auto”
-
Алгоритм вычисления основных расстояний; по умолчанию используется
"auto", который пытается использовать деревоKDTree, если это возможно, иначе используется деревоBallTree. В обоих алгоритмах —"kd_tree"и"ball_tree"— используется оценивательNearestNeighbors.Если переданный при выполнении
fitпараметрXявляется разреженным или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"— вычислять центр как точку обучающих данных, минимизирующую расстояние до всех остальных точек кластера. Это медленнее, чем “centroid”, поскольку требует вычисления дополнительных попарных расстояний между точками одного кластера, но гарантирует, что результат будет наблюдаемой точкой данных. Медиоид также определен для произвольных метрик и не зависит от евклидовой метрики. -
"both"— вычислять и сохранять оба вида центров.
-
- copybool, по умолчанию=False
-
Если задано
copy=True, то перед внесением изменений на месте, которые могут перезаписать данные, переданные в fit, сначала создается копия, что гарантирует сохранность исходных данных. В настоящее время это применяется только приmetric="precomputed", передаче плотного массива или разреженной матрицы CSR и приalgorithm="brute".Изменено в версии 1.10: В версии 1.10 значение параметра
copyпо умолчанию изменится сFalseнаTrue.
- Атрибуты:
-
- 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(copy=True, min_cluster_size=20) >>> hdb.fit(X) HDBSCAN(copy=True, 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)[исходный код]
-
Возвращает кластеризацию 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)[исходный код]
-
Находит кластеры с помощью иерархической кластеризации на основе плотности.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features) или ndarray формы (n_samples, n_samples)
-
Массив признаков или массив расстояний между образцами, если задано
metric='precomputed'. - yNone
-
Игнорируется.
- Возвращает:
-
- selfobject
-
Возвращает self.
- fit_predict(X, y=None)[исходный код]
-
Кластеризует X и возвращает соответствующие метки кластеров.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features) или ndarray формы (n_samples, n_samples)
-
Массив признаков или массив расстояний между образцами, если задано
metric='precomputed'. - yNone
-
Игнорируется.
- Возвращает:
-
- yndarray формы (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.HDBSCAN.html