BisectingKMeans#
- класс sklearn.cluster.BisectingKMeans(n_clusters=8, *, init='random', n_init=1, random_state=None, max_iter=300, verbose=0, tol=0.0001, copy_x=True, алгоритм='lloyd', bisecting_strategy='biggest_inertia')[источник]#
Биссекционный K-Means кластеризация.
Подробнее в Руководство пользователя.
Добавлено в версии 1.1.
- Параметры:
- n_clustersint, по умолчанию=8
Количество кластеров для формирования, а также количество центроидов для генерации.
- init{‘k-means++’, ‘random’} или вызываемый, по умолчанию=’random’
Метод инициализации:
‘k-means++’ : выбирает начальные центры кластеров для k-средних кластеризации умным способом для ускорения сходимости. См. раздел Notes в k_init для подробностей.
‘random’: выбирать
n_clustersнаблюдения (строки) случайным образом из данных для начальных центроидов.Если передается вызываемый объект, он должен принимать аргументы X, n_clusters и случайное состояние и возвращать инициализацию.
- 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.
- алгоритм{"lloyd", "elkan"}, по умолчанию="lloyd"
Внутренний алгоритм K-means, используемый при бисекции. Классический алгоритм в стиле 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 формы (n_clusters, n_features)
Координаты центров кластеров. Если алгоритм останавливается до полной сходимости (см.
tolиmax_iter), эти не будут согласованы сlabels_.- labels_ndarray формы (n_samples,)
Метки каждой точки.
- inertia_float
Isomap
- n_features_in_int
Количество признаков, замеченных во время fit.
- feature_names_in_ndarray формы (
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-средних и обычного K-средних.
- fit(X, y=None, sample_weight=None)[источник]#
Выполнить бисекционную k-средних кластеризацию.
- Параметры:
- X{array-like, sparse matrix} формы (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)[источник]#
Вычислить центры кластеров и предсказать индекс кластера для каждого образца.
Удобный метод; эквивалентен вызову fit(X) с последующим predict(X).
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Новые данные для преобразования.
- yИгнорируется
Не используется, присутствует здесь для согласованности API по соглашению.
- sample_weightarray-like формы (n_samples,), по умолчанию=None
Веса для каждого наблюдения в X. Если None, всем наблюдениям присваивается равный вес.
- Возвращает:
- меткиndarray формы (n_samples,)
Индекс кластера, к которому принадлежит каждый образец.
- fit_transform(X, y=None, sample_weight=None)[источник]#
Выполнить кластеризацию и преобразовать X в пространство расстояний до кластеров.
Эквивалентно fit(X).transform(X), но реализовано более эффективно.
- Параметры:
- X{array-like, sparse matrix} формы (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)[источник]#
Получить имена выходных признаков для преобразования.
Имена признаков на выходе будут иметь префикс в виде имени класса в нижнем регистре. Например, если преобразователь выводит 3 признака, то имена признаков на выходе:
["class_name0", "class_name1", "class_name2"].- Параметры:
- input_featuresarray-like из str или None, по умолчанию=None
Используется только для проверки имен признаков с именами, встреченными в
fit.
- Возвращает:
- feature_names_outndarray из str объектов
Преобразованные имена признаков.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- predict(X)[источник]#
Предсказать, к какому кластеру принадлежит каждый образец в X.
Прогноз выполняется путем спуска по иерархическому дереву в поиске ближайшего листового кластера.
В литературе по векторному квантованию,
cluster_centers_называется кодовая книга, и каждое значение, возвращаемоеpredictявляется индексом ближайшего кода в кодовой книге.- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Новые данные для предсказания.
- Возвращает:
- меткиndarray формы (n_samples,)
Индекс кластера, к которому принадлежит каждый образец.
- score(X, y=None, sample_weight=None)[источник]#
Противоположное значение X по целевой функции K-средних.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Новые данные.
- yИгнорируется
Не используется, присутствует здесь для согласованности API по соглашению.
- sample_weightarray-like формы (n_samples,), по умолчанию=None
Веса для каждого наблюдения в X. Если None, всем наблюдениям присваивается равный вес.
- Возвращает:
- scorefloat
Противоположное значение X по целевой функции K-средних.
- 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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
sample_weightпараметр вfit.
- Возвращает:
- selfobject
Обновленный объект.
- set_output(*, преобразовать=None)[источник]#
Установить контейнер вывода.
См. Введение API set_output для примера использования API.
- Параметры:
- преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None
Настройка вывода
transformиfit_transform."default": Формат вывода трансформера по умолчанию"pandas": DataFrame вывод"polars": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 1.4:
"polars"опция была добавлена.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- 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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
sample_weightпараметр вscore.
- Возвращает:
- selfobject
Обновленный объект.
- преобразовать(X)[источник]#
Преобразовать X в пространство расстояний до кластеров.
В новом пространстве каждое измерение — это расстояние до центров кластеров. Обратите внимание, что даже если X разрежен, массив, возвращаемый
transformобычно будет плотной.- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Новые данные для преобразования.
- Возвращает:
- X_newndarray формы (n_samples, n_clusters)
X преобразован в новое пространство.
Примеры галереи#
Сравнение производительности биссекционного K-средних и обычного K-средних