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