mean_shift#

sklearn.cluster.mean_shift(X, *, bandwidth=None, семена=None, bin_seeding=False, min_bin_freq=1, cluster_all=True, max_iter=300, n_jobs=None)[источник]#

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

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

Параметры:
Xarray-like формы (n_samples, n_features)

Входные данные.

bandwidthfloat, по умолчанию=None

Ширина ядра. Если не None, должна быть в диапазоне [0, +inf).

Если None, ширина полосы определяется с помощью эвристики, основанной на медиане всех попарных расстояний. Это займет квадратичное время от количества образцов. Функция sklearn.cluster.estimate_bandwidth может быть использована для более эффективного выполнения этого.

семенаarray-like формы (n_seeds, n_features) или None

Точка, используемая как начальные местоположения ядра. Если None и bin_seeding=False, каждая точка данных используется как семя. Если None и bin_seeding=True, см. bin_seeding.

bin_seedingbool, по умолчанию=False

Если True, начальные положения ядер — не положения всех точек, а положения дискретизированной версии точек, где точки группируются в сетку, чья грубость соответствует ширине окна. Установка этой опции в True ускорит алгоритм, потому что будет инициализировано меньше начальных точек. Игнорируется, если аргумент seeds не None.

min_bin_freqint, по умолчанию=1

Чтобы ускорить алгоритм, принимайте только те бины с как минимум min_bin_freq точек в качестве семян.

cluster_allbool, по умолчанию=True

Если True, то все точки кластеризуются, включая сиротские точки, которые не находятся внутри какого-либо ядра. Сиротские точки назначаются ближайшему ядру. Если False, то сиротским точкам присваивается метка кластера -1.

max_iterint, по умолчанию=300

Максимальное количество итераций на точку начального приближения до завершения операции кластеризации (для этой точки), если она еще не сошлась.

n_jobsint, default=None

Количество заданий для вычислений. Следующие задачи выигрывают от распараллеливания:

  • Поиск ближайших соседей для оценки ширины полосы и назначения меток. См. подробности в строке документации NearestNeighbors класс.

  • Оптимизация методом восхождения на холм для всех начальных значений.

См. Глоссарий для получения дополнительной информации.

None означает 1, если только не в joblib.parallel_backend контекст. -1 означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.

Добавлено в версии 0.17: Параллельное выполнение с использованием n_jobs.

Возвращает:
cluster_centersndarray формы (n_clusters, n_features)

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

меткиndarray формы (n_samples,)

Метки кластеров для каждой точки.

Примечания

Пример использования см. в Демонстрация алгоритма кластеризации mean-shift.

Примеры

>>> import numpy as np
>>> from sklearn.cluster import mean_shift
>>> X = np.array([[1, 1], [2, 1], [1, 0],
...               [4, 7], [3, 5], [3, 6]])
>>> cluster_centers, labels = mean_shift(X, bandwidth=2)
>>> cluster_centers
array([[3.33, 6.     ],
       [1.33, 0.66]])
>>> labels
array([1, 1, 1, 0, 0, 0])