Spec-Zone.ru › scikit-learn

MiniBatchKMeans

classsklearn.cluster.MiniBatchKMeans(n_clusters=8, *, init='k-means++', max_iter=100, batch_size=1024, verbose=0, compute_labels=True, random_state=None, tol=0.0, max_no_improvement=10, init_size=None, n_init='auto', reassignment_ratio=0.01)[source]

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

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

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

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

init{‘k-means++’, ‘random’}, вызываемый объект или массив-подобный объект формы (n_clusters, n_features), по умолчанию=’k-means++’

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

‘k-means++’ : выбирает начальные центроиды кластеров, используя выборку на основе эмпирического распределения вероятностей вклада точек в общую инерцию. Этот метод ускоряет сходимость. Реализованный алгоритм — «жадный k-means++». Он отличается от обычного k-means++ тем, что делает несколько попыток на каждом шаге выборки и выбирает лучший центроид среди них.

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

Если передан массив, он должен иметь форму (n_clusters, n_features) и задаёт начальные центры.

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

Для оценки влияния инициализации см. пример Эмпирическая оценка влияния инициализации k-means.

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

Максимальное количество итераций по всему набору данных перед остановкой независимо от каких-либо эвристик раннего прекращения.

batch_sizeint, по умолчанию=1024

Размер мини-пакетов. Для более быстрых вычислений вы можете установить batch_size больше, чем 256 * количество ядер, чтобы включить параллелизм на всех ядрах.

Изменено в версии 1.0: batch_size значение по умолчанию изменено с 100 на 1024.

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

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

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

Вычислить присвоение меток и инерцию для всего набора данных, как только мини-пакетная оптимизация сойдётся в fit.

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

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

tolfloat, по умолчанию=0.0

Управление ранним прекращением на основе относительных изменений центра, измеренных с помощью сглаженного, нормированного на дисперсию среднего квадрата изменений положения центра. Эта эвристика раннего прекращения ближе к той, что используется для пакетной версии алгоритмов, но она вызывает небольшую вычислительную и оперативную нагрузку по сравнению с эвристикой инерции.

Для отключения обнаружения сходимости на основе нормализованного изменения центра установите tol в 0.0 (по умолчанию).

max_no_improvementint, по умолчанию=10

Управление ранним прекращением на основе последовательного числа мини-пакетов, которые не дают улучшения в сглаженной инерции.

Для отключения обнаружения сходимости на основе инерции установите max_no_improvement в None.

init_sizeint, по умолчанию=None

Количество выборок для случайной выборки для ускорения инициализации (иногда за счёт точности): единственный алгоритм инициализируется путём запуска пакетного KMeans на случайной подвыборке данных. Это должно быть больше, чем n_clusters.

Если None, эвристика init_size = 3 * batch_size если 3 * batch_size < n_clusters, иначе init_size = 3 * n_clusters.

n_init‘auto’ или int, по умолчанию=”auto”

Количество случайных инициализаций, которые будут опробованы. В отличие от KMeans, алгоритм выполняется только один раз, используя лучшую из n_init инициализаций, как измеряется инерцией. Несколько запусков рекомендуется для разреженных высокомерных задач (см. Кластеризация разреженных данных с помощью k-средних).

Когда n_init='auto', количество запусков зависит от значения init: 3, если используется init='random' или init — вызываемый объект; 1, если используется init='k-means++' или init — массив-подобный объект.

Добавлена в версии 1.2: Добавлена опция «auto» для n_init.

Изменено в версии 1.4: Значение по умолчанию для n_init изменено на 'auto' в версии.

reassignment_ratiofloat, по умолчанию=0.01

Управление долей максимального количества подсчётов для переназначения центра. Более высокое значение означает, что центры с низким количеством подсчётов переназначаются легче, что означает, что модель будет дольше сходиться, но должна сходиться к лучшей кластеризации. Однако слишком высокое значение может вызвать проблемы сходимости, особенно при малом размере пакета.

Атрибуты:
cluster_centers_массив формы (n_clusters, n_features)

Координаты центров кластеров.

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

Метки каждой точки (если compute_labels установлено в True).

inertia_float

Значение критерия инерции, связанное с выбранным разбиением, если compute_labels установлено в True. Если compute_labels установлено в False, это приблизительная инерция, основанная на экспоненциально взвешенном среднем инерций пакета. Инерция определяется как сумма квадратов расстояний выборок до их центра кластера, взвешенная предоставленными весами выборок.

n_iter_int

Количество итераций по всему набору данных.

n_steps_int

Количество обработанных мини-пакетов.

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

n_features_in_int

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

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

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

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

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

См. также

KMeans

Классическая реализация метода кластеризации, основанная на алгоритме Ллойда. Она потребляет весь набор входных данных на каждой итерации.

Примечания

См. https://www.eecs.tufts.edu/~dsculley/papers/fastkmeans.pdf

Когда в наборе данных слишком мало точек, некоторые центры могут быть дублированы, что означает, что правильная кластеризация с точки зрения запрошенного количества кластеров и возвращённого количества кластеров не всегда будет соответствовать. Одно из решений — установить reassignment_ratio=0, что предотвращает переназначение слишком малых кластеров.

См. Сравнение BIRCH и MiniBatchKMeans для сравнения с BIRCH.

Примеры

>>> from sklearn.cluster import MiniBatchKMeans
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [4, 2], [4, 0], [4, 4],
...               [4, 5], [0, 1], [2, 2],
...               [3, 2], [5, 5], [1, -1]])
>>> # manually fit on batches
>>> kmeans = MiniBatchKMeans(n_clusters=2,
...                          random_state=0,
...                          batch_size=6,
...                          n_init="auto")
>>> kmeans = kmeans.partial_fit(X[0:6,:])
>>> kmeans = kmeans.partial_fit(X[6:12,:])
>>> kmeans.cluster_centers_
array([[3.375, 3.  ],
       [0.75 , 0.5 ]])
>>> kmeans.predict([[0, 0], [4, 4]])
array([1, 0], dtype=int32)
>>> # fit on the whole data
>>> kmeans = MiniBatchKMeans(n_clusters=2,
...                          random_state=0,
...                          batch_size=6,
...                          max_iter=10,
...                          n_init="auto").fit(X)
>>> kmeans.cluster_centers_
array([[3.55102041, 2.48979592],
       [1.06896552, 1.        ]])
>>> kmeans.predict([[0, 0], [4, 4]])
array([1, 0], dtype=int32)
fit(X, y=None, sample_weight=None)[source]

Вычислить центроиды на X, разбивая его на мини-пакеты.

Параметры:
X{массив-подобный объект, разреженная матрица} формы (n_samples, n_features)

Обучающие примеры для кластеризации. Следует отметить, что данные будут преобразованы в порядок C, что приведёт к копированию памяти, если предоставленные данные не являются непрерывными в порядке C. Если передан разреженный массив, копия будет создана, если он не в формате CSR.

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

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

sample_weightмассив-подобный объект формы (n_samples,), по умолчанию=None

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

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

Возвращает:
selfобъект

Обученный оценщик.

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

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

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

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

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

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

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

sample_weightмассив-подобный формы (n_samples,), по умолчанию=None

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

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

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

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

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

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

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

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

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

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

sample_weightмассив-подобный формы (n_samples,), по умолчанию=None

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

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

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

get_feature_names_out(input_features=None)[source]

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

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

Параметры:
input_featuresмассив-подобный из str или None, по умолчанию=None

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

Возвращает:
feature_names_outмассив объектов str

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

get_metadata_routing()[source]

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

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

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

A MetadataRequest encapsulating routing information.

get_params(deep=True)[source]

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

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

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

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

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

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

Обновить оценку k-средних на одном мини-пакете X.

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

Обучающие экземпляры для кластеризации. Следует отметить, что данные будут преобразованы в порядок C, что приведет к копированию памяти, если заданные данные не являются непрерывными в порядке C. Если передается разреженная матрица, будет выполнена копия, если она не в формате CSR.

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

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

sample_weightмассив-подобный формы (n_samples,), по умолчанию=None

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

Возвращает:
selfобъект

Возвращает обновленный оценщик.

predict(X)[source]

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

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

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

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

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

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

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

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

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

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

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

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

sample_weightмассив-подобный формы (n_samples,), по умолчанию=None

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

Возвращаемое значение:
scorefloat

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

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

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

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

Варианты для каждого параметра:

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

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

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

Примечание

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

Параметры:
sample_weightstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

Возвращаемое значение:
selfobject

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

set_output(*, transform=None)[source]

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

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

Параметры:
transform{“default”, “pandas”, “polars”}, по умолчанию=None

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

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

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

Возвращаемое значение:
selfэкземпляр оценщика

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

set_params(**params)[source]

Установка параметров этого оценщика.

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

Параметры:
**paramsdict

Параметры оценщика.

Возвращаемое значение:
selfэкземпляр оценщика

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

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

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

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

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются методу partial_fit, если предоставлены. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их методу partial_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 в partial_fit.

Returns:
selfobject

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → MiniBatchKMeans[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, обычно будет плотным.

Parameters:
X{array-like, sparse matrix} of shape (n_samples, n_features)

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

Returns:
X_newndarray of shape (n_samples, n_clusters)

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

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

Биклостеринг документов с помощью алгоритма спектрального совместного кластерирования

Сравнение BIRCH и MiniBatchKMeans

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

Сравнение алгоритмов кластеризации K-Means и MiniBatchKMeans

Эмпирическая оценка влияния стратегий инициализации k-means

Обучение онлайн словаря частей лиц

Разложения набора данных лиц

Кластеризация текстовых документов с помощью 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.MiniBatchKMeans.html

Spec-Zone.ru

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