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, преобразованный в новое пространство.
Примеры из галереи
© 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