Среднее смещение
- classsklearn.cluster.MeanShift(*, bandwidth=None, seeds=None, bin_seeding=False, min_bin_freq=1, cluster_all=True, n_jobs=None, max_iter=300)[source]
-
Кластеризация методом среднего сдвига с использованием плоского ядра.
Кластеризация методом среднего сдвига предназначена для обнаружения «облаков» в гладкой плотности выборок. Это алгоритм, основанный на центроидах, который работает путем обновления кандидатов в центроиды до среднего значения точек в заданной области. Затем эти кандидаты фильтруются на этапе постобработки для исключения близких дубликатов, чтобы сформировать окончательный набор центроидов.
Засевание выполняется с использованием техники разбиения на ячейки для повышения масштабируемости.
Пример использования кластеризации методом среднего сдвига можно найти в: Демонстрация алгоритма кластеризации методом среднего сдвига.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- bandwidthfloat, по умолчанию=None
-
Ширина полосы, используемая в плоском ядре.
Если не задано, ширина полосы оценивается с помощью sklearn.cluster.estimate_bandwidth; см. документацию этой функции для советов по масштабируемости (см. также Примечания ниже).
- seedsмассив-подобный формы (n_samples, n_features), по умолчанию=None
-
Семена, используемые для инициализации ядер. Если не задано, семена рассчитываются с помощью clustering.get_bin_seeds с bandwidth как размер сетки и значениями по умолчанию для других параметров.
- bin_seedingbool, по умолчанию=False
-
Если True, начальные координаты ядер — не координаты всех точек, а координаты дискретизированной версии точек, где точки разбиваются на ячейки на сетке, грубость которой соответствует ширине полосы. Установка этого параметра в True ускорит алгоритм, поскольку будет инициализировано меньше семян. Значение по умолчанию — False. Игнорируется, если аргумент seeds не равен None.
- min_bin_freqint, по умолчанию=1
-
Для ускорения алгоритма принимаются только ячейки с количеством точек не менее min_bin_freq в качестве семян.
- cluster_allbool, по умолчанию=True
-
Если True, все точки кластеризуются, даже те, которые являются сиротами и не находятся внутри какого-либо ядра. Сироты назначаются ближайшему ядру. Если False, сиротам присваивается метка кластера -1.
- n_jobsint, по умолчанию=None
-
Количество задач для использования в вычислениях. Следующие задачи выигрывают от распараллеливания:
- Поиск ближайших соседей для оценки ширины полосы и назначения меток. Подробности см. в строке документации класса
NearestNeighbors. - Оптимизация восхождения на холм для всех семян.
См. Справочник для получения дополнительной информации.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. См. Справочник для получения дополнительной информации. - Поиск ближайших соседей для оценки ширины полосы и назначения меток. Подробности см. в строке документации класса
- max_iterint, по умолчанию=300
-
Максимальное число итераций на точку-семя до завершения операции кластеризации (для этой точки-семени), если кластеризация ещё не сошлась.
Добавлена в версии 0.22.
- Атрибуты:
-
- cluster_centers_массив формы (n_clusters, n_features)
-
Координаты центров кластеров.
- labels_массив формы (n_samples,)
-
Метки каждой точки.
- n_iter_int
-
Максимальное число итераций, выполненных на каждом семени.
Добавлена в версии 0.22.
- n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлена в версии 0.24.
-
feature_names_in_массив формы (
n_features_in_,) -
Названия признаков, увиденные во время fit. Определяются только тогда, когда
Xимеет имена признаков, которые являются строками.Добавлена в версии 1.0.
См. также
KMeans-
Кластеризация методом K-средних.
Примечания
Масштабируемость:
Поскольку эта реализация использует плоское ядро и дерево Ball Tree для поиска членов каждого ядра, сложность будет стремиться к O(T*n*log(n)) в низкоразмерных пространствах, где n — количество выборок, а T — количество точек. В высокоразмерных пространствах сложность будет стремиться к O(T*n^2).
Масштабируемость можно повысить, используя меньше семян, например, используя большее значение min_bin_freq в функции get_bin_seeds.
Обратите внимание, что функция estimate_bandwidth значительно менее масштабируема, чем алгоритм среднего сдвига, и станет узким местом, если будет использована.
Ссылки
Dorin Comaniciu и Peter Meer, «Mean Shift: A robust approach toward feature space analysis». IEEE Transactions on Pattern Analysis and Machine Intelligence. 2002. с. 603-619.
Примеры
>>> from sklearn.cluster import MeanShift >>> import numpy as np >>> X = np.array([[1, 1], [2, 1], [1, 0], ... [4, 7], [3, 5], [3, 6]]) >>> clustering = MeanShift(bandwidth=2).fit(X) >>> clustering.labels_ array([1, 1, 1, 0, 0, 0]) >>> clustering.predict([[0, 0], [5, 5]]) array([1, 0]) >>> clustering MeanShift(bandwidth=2)
- fit(X, y=None)[source]
-
Выполнить кластеризацию.
- Параметры:
-
- Xмассив-подобный формы (n_samples, n_features)
-
Выборка для кластеризации.
- yИгнорируется
-
Не используется, присутствует для согласованности API по соглашению.
- Возвращает:
-
- selfобъект
-
Обученная инстанция.
- fit_predict(X, y=None, **kwargs)[source]
-
Выполнить кластеризацию на
Xи вернуть метки кластеров.- Параметры:
-
- Xмассив-подобный формы (n_samples, n_features)
-
Входные данные.
- yИгнорируется
-
Не используется, присутствует для согласованности API по соглашению.
- **kwargsdict
-
Аргументы, которые нужно передать в
fit.Добавлена в версии 1.4.
- Возвращает:
-
- labelsмассив формы (n_samples,), тип=np.int64
-
Метки кластеров.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
См. Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
А
MetadataRequestс информацией о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернет параметры этого оценщика и вложенных подобъектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные с их значениями.
- predict(X)[source]
-
Предсказать кластер, к которому относится каждый образец в X.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Новые данные для предсказания.
- Возвращает:
-
- labelsndarray of shape (n_samples,)
-
Индекс кластера, к которому относится каждый образец.
- set_params(**params)[source]
-
Установить параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, чтобы можно было обновить каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценщика.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.cluster.MeanShift.html