kmeans_plusplus#

sklearn.cluster.kmeans_plusplus(X, n_clusters, *, sample_weight=None, x_squared_norms=None, random_state=None, n_local_trials=None)[источник]#

Инициализировать n_clusters начальных значений в соответствии с k-means++.

Добавлено в версии 0.24.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Данные, из которых выбираются начальные точки.

n_clustersint

Количество центроидов для инициализации.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Веса для каждого наблюдения в X. Если None, всем наблюдениям присваивается равный вес. sample_weight игнорируется, если init является вызываемым объектом или предоставленным пользователем массивом.

Добавлено в версии 1.3.

x_squared_normsarray-like формы (n_samples,), по умолчанию=None

Квадрат евклидовой нормы каждой точки данных.

random_stateint или экземпляр RandomState, default=None

Определяет генерацию случайных чисел для инициализации центроидов. Передайте int для воспроизводимого вывода при множественных вызовах функции. См. Глоссарий.

n_local_trialsint, default=None

Количество пробных запусков для каждого центра (кроме первого), из которых выбирается тот, который наиболее уменьшает инерцию. Установите None, чтобы количество пробных запусков зависело логарифмически от количества начальных центров (2+log(k)), что является рекомендуемой настройкой. Установка значения 1 отключает жадный выбор кластеров и возвращает базовый алгоритм k-means++, который, как показали эмпирические исследования, работает хуже, чем его жадный вариант.

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

Начальные центры для k-means.

индексыndarray формы (n_clusters,)

Индексное расположение выбранных центров в массиве данных X. Для заданного индекса и центра, X[index] = center.

Примечания

Выбирает начальные центры кластеров для k-средних умным способом, чтобы ускорить сходимость. см.: Arthur, D. и Vassilvitskii, S. «k-means++: преимущества тщательного выбора начальных центров». ACM-SIAM симпозиум по дискретным алгоритмам. 2007

Примеры

>>> from sklearn.cluster import kmeans_plusplus
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [10, 2], [10, 4], [10, 0]])
>>> centers, indices = kmeans_plusplus(X, n_clusters=2, random_state=0)
>>> centers
array([[10,  2],
       [ 1,  0]])
>>> indices
array([3, 2])