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

См. также

DBSCAN

Пространственная кластеризация приложений на основе плотности с учетом шума.

OPTICS

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

Birch

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

Примечания

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

Ссылки

[1]

Campello, R. J., Moulavi, D. и Sander, J. Кластеризация на основе плотности с использованием иерархических оценок плотности.

[2]

Campello, R. J., Moulavi, D., Zimek, A. и Sander, J. Иерархические оценки плотности для кластеризации данных, визуализации и обнаружения выбросов.

[3]

Chaudhuri, K. и Dasgupta, S. Скорость сходимости для дерева кластеров.

[4]

Moulavi, D., Jaskowiak, P.A., Campello, R.J., Zimek, A. и Sander, J. Проверка качества кластеризации на основе плотности.

[5]

Malzer, C. и Baum, M. «Гибридный подход к иерархическому выбору кластеров на основе плотности»..

Примеры

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

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

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

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

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

Основные нововведения scikit-learn 1.3

© 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

Spec-Zone.ru

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