Spec-Zone.ru › scikit-learn

BisectingKMeans

classsklearn.cluster.BisectingKMeans(n_clusters=8, *, init='random', n_init=1, random_state=None, max_iter=300, verbose=0, tol=0.0001, copy_x=True, algorithm='lloyd', bisecting_strategy='biggest_inertia')[source]

Кластеризация методом биссекционного K-Means.

Подробнее см. в Руководстве пользователя.

Добавлен в версии 1.1.

Параметры:
n_clustersint, по умолчанию=8

Количество кластеров, которые нужно сформировать, а также количество центров, которые нужно сгенерировать.

init{‘k-means++’, ‘random’} или вызываемый объект, по умолчанию=’random’

Метод инициализации:

‘k-means++’ : выбирает начальные центры кластеров для кластеризации k-means умным способом, чтобы ускорить сходимость. Подробнее см. раздел Примечания в k_init.

‘random’: выбирает n_clusters наблюдений (строк) случайным образом из данных для начальных центров.

Если передан вызываемый объект, он должен принимать аргументы X, n_clusters и random_state и возвращать инициализацию.

n_initint, по умолчанию=1

Количество раз, когда внутренний алгоритм k-means будет выполняться с различными начальными точками центроидов в каждой бисекции. Это приведет к тому, что для каждой бисекции будет получен лучший результат n_init последовательных запусков с точки зрения инерции.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Определяет генерацию случайных чисел для инициализации центроидов во внутреннем K-Means. Используйте целое число, чтобы сделать случайность детерминированной. См. Словарь.

max_iterint, по умолчанию=300

Максимальное количество итераций внутреннего алгоритма k-means в каждой бисекции.

verboseint, по умолчанию=0

Режим отображения сообщений.

tolfloat, по умолчанию=1e-4

Относительная толерантность по отношению к норме Фробениуса разницы в центрах кластеров двух последовательных итераций для объявления сходимости. Используется во внутреннем алгоритме k-means в каждой бисекции для выбора наилучших возможных кластеров.

copy_xbool, по умолчанию=True

При предварительном вычислении расстояний для большей точности численно лучше центрировать данные. Если copy_x равно True (по умолчанию), то исходные данные не изменяются. Если False, исходные данные изменяются и возвращаются обратно перед возвратом функции, но могут быть введены небольшие числовые различия за счет вычитания и затем сложения среднего значения данных. Обратите внимание, что если исходные данные не являются C-непрерывными, то будет создана копия, даже если copy_x равно False. Если исходные данные являются разреженными, но не в формате CSR, то будет создана копия, даже если copy_x равно False.

algorithm{“lloyd”, “elkan”}, по умолчанию=”lloyd”

Внутренний алгоритм K-means, используемый в бисекции. Классический алгоритм стиля EM — "lloyd". Вариант "elkan" может быть более эффективным для некоторых наборов данных с хорошо определенными кластерами, используя неравенство треугольника. Однако он более ресурсоемкий из-за выделения дополнительного массива формы (n_samples, n_clusters).

bisecting_strategy{“biggest_inertia”, “largest_cluster”}, по умолчанию=”biggest_inertia”

Определяет, как должна выполняться бисекция:

  • “biggest_inertia” означает, что BisectingKMeans всегда будет проверять все рассчитанные кластеры на наличие кластера с наибольшей SSE (суммой квадратов ошибок) и делить его. Этот подход ориентирован на точность, но может быть дорогостоящим с точки зрения времени выполнения (особенно для больших наборов данных).
  • “largest_cluster” - BisectingKMeans всегда будет разделять кластер с наибольшим количеством ему присвоенных точек из всех ранее рассчитанных кластеров. Это должно работать быстрее, чем выбор по SSE («biggest_inertia»), и в большинстве случаев может давать аналогичные результаты.
Атрибуты:
cluster_centers_массив формы (n_clusters, n_features)

Координаты центров кластеров. Если алгоритм останавливается до полной сходимости (см. tol и max_iter), эти значения не будут согласованы с labels_.

labels_массив формы (n_samples,)

Метки каждой точки.

inertia_float

Сумма квадратов расстояний образцов до их ближайшего центра кластера, взвешенная весами образцов, если они заданы.

n_features_in_int

Количество признаков, увиденных во время fit.

feature_names_in_массив формы (n_features_in_,)

Имена признаков, увиденных во время fit. Определены только тогда, когда X имеет имена признаков, все из которых являются строками.

См. также

KMeans

Оригинальная реализация алгоритма K-Means.

Примечания

Он может быть неэффективным, когда n_cluster меньше 3, из-за ненужных вычислений для этого случая.

Примеры

>>> from sklearn.cluster import BisectingKMeans
>>> import numpy as np
>>> X = np.array([[1, 1], [10, 1], [3, 1],
...               [10, 0], [2, 1], [10, 2],
...               [10, 8], [10, 9], [10, 10]])
>>> bisect_means = BisectingKMeans(n_clusters=3, random_state=0).fit(X)
>>> bisect_means.labels_
array([0, 2, 0, 2, 0, 2, 1, 1, 1], dtype=int32)
>>> bisect_means.predict([[0, 0], [12, 3]])
array([0, 2], dtype=int32)
>>> bisect_means.cluster_centers_
array([[ 2., 1.],
       [10., 9.],
       [10., 1.]])

Для сравнения BisectingKMeans и K-Means см. пример Сравнение производительности биссекционного K-Means и обычного K-Means.

fit(X, y=None, sample_weight=None)[source]

Вычисление биссекционной кластеризации K-Means.

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

Обучающие примеры для кластеризации.

Примечание

Данные будут преобразованы в порядок C, что приведет к копированию памяти, если заданные данные не являются C-непрерывными.

yИгнорируется

Не используется, присутствует здесь для согласованности API по соглашению.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Веса каждого наблюдения в X. Если None, всем наблюдениям присваивается равный вес. sample_weight не используется во время инициализации, если init — вызываемый объект.

Возвращает:
self

Обученная модель.

fit_predict(X, y=None, sample_weight=None)[source]

Вычисление центров кластеров и предсказание индекса кластера для каждого образца.

Удобный метод; эквивалентен вызову fit(X) и последующему predict(X).

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

Новые данные для преобразования.

yИгнорируется

Не используется, присутствует здесь для согласованности API по соглашению.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Веса каждого наблюдения в X. Если None, всем наблюдениям присваивается равный вес.

Возвращает:
labelsмассив формы (n_samples,)

Индекс кластера, к которому принадлежит каждый образец.

fit_transform(X, y=None, sample_weight=None)[source]

Вычислить кластеризацию и преобразовать X в пространство расстояний до кластеров.

Эквивалентно fit(X).transform(X), но реализовано более эффективно.

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

Новые данные для преобразования.

yИгнорируется

Не используется, присутствует здесь для согласованности API по умолчанию.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Веса для каждой наблюдения в X. Если None, все наблюдения получают равный вес.

Возвращает:
X_newndarray формы (n_samples, n_clusters)

X, преобразованный в новое пространство.

get_feature_names_out(input_features=None)[source]

Получить имена выходных признаков для преобразования.

Имена выходных признаков будут иметь префикс в нижнем регистре имени класса. Например, если преобразователь выводит 3 признака, то имена выходных признаков: ["class_name0", "class_name1", "class_name2"].

Параметры:
input_featuresarray-like из str или None, по умолчанию=None

Используется только для проверки имен признаков с именами, увиденными в fit.

Возвращает:
feature_names_outndarray из str объектов

Имена преобразованных признаков.

get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.

Возвращает:
routingMetadataRequest

А MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, вернет параметры этого оценщика и вложенных под-объектов, которые являются оценщиками.

Возвращает:
paramsdict

Имена параметров сопоставлены с их значениями.

predict(X)[source]

Предсказать, к какому кластеру принадлежит каждый образец в X.

Предсказание выполняется путем спуска по иерархическому дереву в поиске ближайшего листового кластера.

В литературе по векторному квантованию cluster_centers_ называется кодовой книгой, а каждое возвращаемое значение predict — индексом ближайшего кода в кодовой книге.

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

Новые данные для предсказания.

Возвращает:
labelsndarray формы (n_samples,)

Индекс кластера, к которому принадлежит каждый образец.

score(X, y=None, sample_weight=None)[source]

Обратное значение целевой функции K-средних для X.

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

Новые данные.

yИгнорируется

Не используется, присутствует здесь для согласованности API по умолчанию.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Веса для каждой наблюдения в X. Если None, все наблюдения получают равный вес.

Возвращает:
scorefloat

Обратное значение целевой функции K-средних для X.

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → BisectingKMeans[source]

Запрос метаданных, передаваемых методу fit.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, обратитесь к Руководству пользователя для понимания принципов работы механизма маршрутизации.

Доступные варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются методу fit, если они предоставлены. Запрос игнорируется, если метаданных нет.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их методу fit.
  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит.
  • str: метаданные должны передаваться мета-оценщику с данным псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, оставив другие без изменений.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только если этот оценочный модуль используется в качестве подмодуля мета-оценщика, например, внутри Pipeline. В противном случае он не оказывает влияния.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в методе fit.

Returns:
selfobject

Обновлённый объект.

set_output(*, transform=None)[source]

Установить контейнер вывода.

См. Представление API set_output для примера использования API.

Parameters:
transform{“default”, “pandas”, “polars”}, default=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода по умолчанию для преобразователя
  • "pandas": Вывод в виде DataFrame
  • "polars": Вывод в формате Polars
  • None: Настройка преобразования не изменяется

Добавлен в версии 1.4: "polars" вариант был добавлен.

Returns:
selfestimator instance

Экземпляр оценочного модуля.

set_params(**params)[source]

Установить параметры этого оценочного модуля.

Метод работает с простыми оценочными модулями, а также со вложенными объектами (такими как Pipeline). Последние имеют параметры вида <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Parameters:
**paramsdict

Параметры оценочного модуля.

Returns:
selfestimator instance

Экземпляр оценочного модуля.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → BisectingKMeans[source]

Запрос метаданных, передаваемых методу score.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, обратитесь к Руководству пользователя для понимания принципов работы механизма маршрутизации.

Доступные варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются методу score, если они предоставлены. Запрос игнорируется, если метаданных нет.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их методу score.
  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит.
  • str: метаданные должны передаваться мета-оценщику с данным псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, оставив другие без изменений.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только если этот оценочный модуль используется в качестве подмодуля мета-оценщика, например, внутри Pipeline. В противном случае он не оказывает влияния.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в методе score.

Returns:
selfobject

Обновлённый объект.

transform(X)[source]

Преобразовать X в пространство расстояний до кластеров.

В новом пространстве каждая размерность — это расстояние до центров кластеров. Обратите внимание, что даже если X разреженный, массив, возвращаемый transform, обычно будет плотным.

Параметры:
X{array-like, sparse matrix} of shape (n_samples, n_features)

Новые данные для преобразования.

Возвращает:
X_newndarray of shape (n_samples, n_clusters)

X, преобразованное в новое пространство.

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

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

Сравнение производительности Bisecting K-Means и Regular K-Means

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.cluster.BisectingKMeans.html

Spec-Zone.ru

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