Spec-Zone.ru › scikit-learn

Среднее смещение

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

Spec-Zone.ru

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