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')[исходный код]
-
Кластеризация методом бисекции K-средних.
Подробнее см. в руководстве пользователя.
Добавлено в версии 1.1.
- Параметры:
-
- n_clustersint, default=8
-
Количество формируемых кластеров, а также количество генерируемых центроидов.
- init{‘k-means++’, ‘random’} or callable, default=’random’
-
Метод инициализации для каждой бисекции.
‘k-means++’ : интеллектуальный выбор начальных центров кластеров для кластеризации методом k-средних, ускоряющий сходимость. Подробнее см. раздел «Примечания» в k_init.
‘random’: случайный выбор
n_clustersнаблюдений (строк) из данных в качестве начальных центроидов.Если передана вызываемая функция, она должна принимать аргументы X, n_clusters и состояние генератора случайных чисел и возвращать инициализацию. Обратите внимание, что алгоритм бисекции всегда выполняет разделение на 2 части, поэтому вызываемая функция всегда вызывается с
n_clusters=2и должна возвращать 2 центроида. - n_initint, default=1
-
Количество запусков внутреннего алгоритма k-средних с различными начальными значениями центроидов для каждой бисекции. Для каждой бисекции в результате будет выбран наилучший результат из n_init последовательных запусков по значению инерции.
- random_stateint, RandomState instance or None, default=None
-
Определяет генерацию случайных чисел для инициализации центроидов во внутреннем алгоритме K-средних. Используйте int, чтобы сделать генерацию случайных чисел детерминированной. См. глоссарий.
- max_iterint, default=300
-
Максимальное количество итераций внутреннего алгоритма k-средних для каждой бисекции.
- verboseint, default=0
-
Уровень подробности вывода.
- tolfloat, default=1e-4
-
Относительный допуск по норме Фробениуса разности центров кластеров двух последовательных итераций, используемый для определения сходимости. Применяется во внутреннем алгоритме k-средних на каждой бисекции для выбора наилучших возможных кластеров.
- copy_xbool, default=True
-
При предварительном вычислении расстояний численная точность повышается, если сначала центрировать данные. Если copy_x равно True (по умолчанию), исходные данные не изменяются. Если False, исходные данные изменяются и восстанавливаются перед возвратом из функции, однако при вычитании и последующем прибавлении среднего значения данных могут возникнуть небольшие численные расхождения. Обратите внимание: если исходные данные не являются C-непрерывными, будет создана копия, даже если copy_x равно False. Если исходные данные разреженные, но не в формате CSR, будет создана копия, даже если copy_x равно False.
- algorithm{“lloyd”, “elkan”}, default=”lloyd”
-
Внутренний алгоритм K-средних, используемый при бисекции. Классический алгоритм в стиле EM — это
"lloyd". Вариант"elkan"может быть эффективнее на некоторых наборах данных с хорошо определёнными кластерами благодаря использованию неравенства треугольника. Однако он требует больше памяти из-за выделения дополнительного массива формы(n_samples, n_clusters). - bisecting_strategy{“biggest_inertia”, “largest_cluster”}, default=”biggest_inertia”
-
Определяет способ выполнения бисекции:
- “biggest_inertia” означает, что BisectingKMeans всегда будет проверять все вычисленные кластеры, находить кластер с наибольшей SSE (суммой квадратов ошибок) и выполнять его бисекцию. Этот подход ориентирован на точность, но может потребовать значительного времени выполнения (особенно при большом количестве точек данных).
- “largest_cluster” — BisectingKMeans всегда будет разделять кластер с наибольшим количеством точек среди всех ранее вычисленных кластеров. Этот способ должен работать быстрее, чем выбор по SSE (‘biggest_inertia’), и в большинстве случаев может давать похожие результаты.
- Атрибуты:
-
- cluster_centers_ndarray of shape (n_clusters, n_features)
-
Координаты центров кластеров. Если алгоритм останавливается до полной сходимости (см.
tolиmax_iter), они не будут согласованы сlabels_. - labels_ndarray of shape (n_samples,)
-
Метки каждой точки.
- inertia_float
-
Сумма квадратов расстояний от образцов до ближайшего центра кластера, взвешенная с учётом весов образцов, если они заданы.
- n_features_in_int
-
Количество признаков, обнаруженных во время обучения.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Названия признаков, обнаруженные во время обучения. Определяется только в том случае, если
Xсодержит названия признаков, и все они являются строками.
См. также
KMeans-
Исходная реализация алгоритма K-средних.
Примечания
При 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)[исходный код]
-
Вычислить кластеризацию методом бисекции k-средних.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Обучающие экземпляры для кластеризации.
Примечание
Данные будут преобразованы в порядок C, что приведёт к копированию в памяти, если переданные данные не являются C-непрерывными.
- yIgnored
-
Не используется; аргумент присутствует здесь по соглашению для единообразия API.
- sample_weightarray-like of shape (n_samples,), default=None
-
Вес каждого наблюдения в X. Если None, всем наблюдениям назначается одинаковый вес.
sample_weightне используется при инициализации, еслиinitявляется вызываемой функцией.
- Возвращает:
-
- self
-
Обученная модель.
- fit_predict(X, y=None, sample_weight=None)[исходный код]
-
Вычислить центры кластеров и предсказать индекс кластера для каждого образца.
Вспомогательный метод; эквивалентен вызову fit(X), за которым следует predict(X).
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Новые данные для преобразования.
- yIgnored
-
Не используется; аргумент присутствует здесь по соглашению для единообразия API.
- sample_weightarray-like of shape (n_samples,), default=None
-
Вес каждого наблюдения в X. Если None, всем наблюдениям назначается одинаковый вес.
- Возвращает:
-
- labelsndarray of shape (n_samples,)
-
Индекс кластера, к которому относится каждый образец.
- fit_transform(X, y=None, sample_weight=None)[исходный код]
-
Выполнить кластеризацию и преобразовать X в пространство расстояний до кластеров.
Эквивалентно fit(X).transform(X), но реализовано более эффективно.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Новые данные для преобразования.
- yIgnored
-
Не используется; аргумент присутствует здесь по соглашению для единообразия API.
- sample_weightarray-like of shape (n_samples,), default=None
-
Вес каждого наблюдения в X. Если None, всем наблюдениям назначается одинаковый вес.
- Возвращает:
-
- X_newndarray of shape (n_samples, n_clusters)
-
X, преобразованный в новое пространство.
- get_feature_names_out(input_features=None)[исходный код]
-
Получить названия выходных признаков для преобразования.
К названиям выходных признаков будет добавлено имя класса в нижнем регистре. Например, если преобразователь выдаёт 3 признака, их названия будут следующими:
["class_name0", "class_name1", "class_name2"].- Параметры:
-
- input_featuresarray-like of str or None, default=None
-
Используется только для проверки названий признаков на соответствие именам, обнаруженным в
fit.
- Возвращает:
-
- feature_names_outndarray of str objects
-
Названия преобразованных признаков.
- get_metadata_routing()[исходный код]
-
Получить настройки маршрутизации метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этой модели.
- Параметры:
-
- deepbool, default=True
-
Если True, будут возвращены параметры этой модели и содержащихся в ней подобъектов, являющихся моделями.
- Возвращает:
-
- paramsdict
-
Имена параметров и соответствующие им значения.
- predict(X)[исходный код]
-
Предсказать, к какому кластеру относится каждый образец в X.
Предсказание выполняется путём спуска по иерархическому дереву в поиске ближайшего кластера-листа.
В литературе по векторному квантованию
cluster_centers_называется кодовой книгой, а каждое значение, возвращаемоеpredict, является индексом ближайшего кода в кодовой книге.- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Новые данные для предсказания.
- Возвращает:
-
- labelsndarray of shape (n_samples,)
-
Индекс кластера, к которому относится каждый образец.
- score(X, y=None, sample_weight=None)[исходный код]
-
Значение целевой функции K-средних для X, взятое с противоположным знаком.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Новые данные.
- yIgnored
-
Не используется; аргумент присутствует здесь по соглашению для единообразия API.
- sample_weightarray-like of shape (n_samples,), default=None
-
Вес каждого наблюдения в X. Если None, всем наблюдениям назначается одинаковый вес.
- Возвращает:
-
- scorefloat
-
Значение целевой функции K-средних для X, взятое с противоположным знаком.
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') BisectingKMeans[исходный код]
-
Настроить, следует ли запрашивать передачу метаданных методу
fit.Обратите внимание, что этот метод имеет значение только тогда, когда эта модель используется как вложенная модель внутри метамодели и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). О том, как работает механизм маршрутизации, см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и, если предоставлены, передаются вfit. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метамодель не будет передавать их вfit. -
None: метаданные не запрашиваются, и метамодель вызовет ошибку, если пользователь их предоставит. -
str: метаданные следует передавать метамодели под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет текущий запрос. Это позволяет изменить запрос для одних параметров, не затрагивая остальные.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightметодаfit.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- set_output(*, transform=None)[исходный код]
-
Задать контейнер выходных данных.
Дополнительные сведения см. в руководстве пользователя, а пример использования API — в разделе Знакомство с API set_output.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, default=None
-
Настроить формат вывода для
transformиfit_transform.-
"default": формат вывода преобразователя по умолчанию -
"pandas": вывод в формате DataFrame -
"polars": вывод в формате Polars -
None: конфигурация преобразования остаётся без изменений
Добавлено в версии 1.4: Добавлен параметр
"polars". -
- Возвращает:
-
- selfestimator instance
-
Экземпляр модели.
- set_params(**params)[исходный код]
-
Задать параметры этой модели.
Метод работает как с простыми моделями, так и с вложенными объектами (например,
Pipeline). У последних параметры имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры модели.
- Возвращает:
-
- selfestimator instance
-
Экземпляр модели.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') BisectingKMeans[исходный код]
-
Настроить, следует ли запрашивать передачу метаданных методу
score.Обратите внимание, что этот метод имеет значение только тогда, когда эта модель используется как вложенная модель внутри метамодели и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). О том, как работает механизм маршрутизации, см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и, если предоставлены, передаются вscore. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метамодель не будет передавать их вscore. -
None: метаданные не запрашиваются, и метамодель вызовет ошибку, если пользователь их предоставит. -
str: метаданные следует передавать метамодели под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет текущий запрос. Это позволяет изменить запрос для одних параметров, не затрагивая остальные.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightметодаscore.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- transform(X)[исходный код]
-
Преобразовать X в пространство расстояний до кластеров.
В новом пространстве каждое измерение соответствует расстоянию до центра кластера. Обратите внимание: даже если X является разреженной матрицей, массив, возвращаемый
transform, обычно будет плотным.- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Новые данные для преобразования.
- Возвращает:
-
- X_newndarray of shape (n_samples, n_clusters)
-
X, преобразованный в новое пространство.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.cluster.BisectingKMeans.html