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, преобразованное в новое пространство.
Примеры из галереи
© 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