Spec-Zone.ru › scikit-learn

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 для кластеров-выбросов исключаются.

См. также

DBSCAN

Основанное на плотности пространственное кластерирование с шумом.

OPTICS

Порядок точек для определения структуры кластеров.

Birch

Эффективный с точки зрения памяти алгоритм онлайн-обучения.

Примечания

Параметр min_samples включает саму точку, в то время как реализация в scikit-learn-contrib/hdbscan этого не делает. Чтобы получить одинаковые результаты в обоих версиях, значение min_samples здесь должно быть на 1 больше, чем значение, используемое в scikit-learn-contrib/hdbscan.

Ссылки

[1]

Campello, R. J., Moulavi, D., & Sander, J. Density-based clustering based on hierarchical density estimates.

[2]

Campello, R. J., Moulavi, D., Zimek, A., & Sander, J. Hierarchical density estimates for data clustering, visualization, and outlier detection.

[3]

Chaudhuri, K., & Dasgupta, S. Rates of convergence for the cluster tree.

[4]

Moulavi, D., Jaskowiak, P.A., Campello, R.J., Zimek, A. and Sander, J. Density-Based Clustering Validation.

[5]

Malzer, C., & Baum, M. “A Hybrid Approach To Hierarchical Density-based Cluster Selection.”.

Примеры

>>> 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экземпляр оценщика

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

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

Основные моменты выпуска scikit-learn 1.3

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

Демонстрация алгоритма кластеризации HDBSCAN

© 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

Spec-Zone.ru

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