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объект
-
Обученный оценщик.
- 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
MetadataRequestencapsulating 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, преобразованный в новое пространство.
Примеры галереи
© 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