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])