Spec-Zone.ru › scikit-learn

MiniBatchKMeans

классsklearn.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)[исходный код]

Кластеризация Mini-Batch K-Means.

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

Параметры:
n_clustersint, default=8

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

init{‘k-means++’, ‘random’}, callable or array-like of shape (n_clusters, n_features), default=’k-means++’

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

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

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

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

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

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

max_iterint, default=100

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

batch_sizeint, default=1024

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

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

verboseint, default=0

Режим подробного вывода.

compute_labelsbool, default=True

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

random_stateint, RandomState instance or None, default=None

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

tolfloat, default=0.0

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

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

max_no_improvementint, default=10

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

Чтобы отключить обнаружение сходимости на основе инерции, задайте max_no_improvement равным None.

init_sizeint, default=None

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

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

n_init‘auto’ or int, default=”auto”

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

Если 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, default=0.01

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

Атрибуты:
cluster_centers_ndarray of shape (n_clusters, n_features)

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

labels_ndarray of shape (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_ndarray of shape (n_features_in_,)

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

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

См. также

KMeans

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

Примечания

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

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

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

Примеры

>>> 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.20967742, 3.56451613],
       [1.32758621, 0.77586207]])
>>> kmeans.predict([[0, 0], [4, 4]])
array([1, 0], dtype=int32)

Сравнение кластеризации Mini-Batch K-Means с другими алгоритмами кластеризации см. в разделе Сравнение различных алгоритмов кластеризации на искусственных наборах данных

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

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

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

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

yIgnored

Не используется; присутствует здесь для единообразия API.

sample_weightarray-like of shape (n_samples,), default=None

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

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

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

Обученный оцениватель.

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

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

Вспомогательный метод; эквивалентен последовательному вызову 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)[source]

Выполняет кластеризацию и преобразует 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)[source]

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

К названиям выходных признаков добавляется имя класса в нижнем регистре. Например, если преобразователь возвращает 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()[source]

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

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

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

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

get_params(deep=True)[source]

Получает параметры этого оценивателя.

Параметры:
deepbool, default=True

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

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

Имена параметров и соответствующие им значения.

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

Обновляет оценку k-means на одном мини-пакете X.

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

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

yIgnored

Не используется; присутствует здесь для единообразия API.

sample_weightarray-like of shape (n_samples,), default=None

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

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

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

predict(X)[source]

Предсказывает ближайший кластер, к которому относится каждый образец в 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)[source]

Значение, противоположное значению X для целевой функции K-means.

Параметры:
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

Значение, противоположное значению X для целевой функции K-means.

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

Настраивает, следует ли запрашивать передачу метаданных методу 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)[source]

Задаёт контейнер выходных данных.

Дополнительные сведения см. в руководстве пользователя, а пример использования 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_partial_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → MiniBatchKMeans[исходный код]

Настроить, следует ли запрашивать передачу метаданных методу partial_fit.

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

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

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

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

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

Параметры:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → MiniBatchKMeans[исходный код]

Настроить, следует ли запрашивать передачу метаданных методу 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, преобразованный в новое пространство.

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

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

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

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

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

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

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

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

Кластеризация текстовых документов с помощью k-means

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

Spec-Zone.ru

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