k-средство с выбранными начальными центрами

Я пытаюсь k-означает группировку с выбранными начальными центроидами. Здесь говорится, что для определения ваших начальных центров:

init : {'k-means++', 'random' or an ndarray} 

Если ndarray передан, он должен иметь форму ( n_clusters , n_features ) и дает начальные центры.

Мой код в Python:

 X = np.array([[-19.07480000, -8.536], [22.010800000,-10.9737], [12.659700000,19.2601]], np.float64) km = KMeans(n_clusters=3,init=X).fit(data) # print km centers = km.cluster_centers_ print centers 

Возвращает ошибку:

 RuntimeWarning: Explicit initial center position passed: performing only one init in k-means instead of n_init=10 n_jobs=self.n_jobs) 

и возвращать те же начальные центры. Любая идея, как сформировать начальные центры, чтобы их можно было принять?

One Solution collect form web for “k-средство с выбранными начальными центрами”

Поведение KMeans по KMeans – это инициализация алгоритма несколько раз с использованием различных случайных центроидов (то есть метода Forgy ). Затем количество случайных инициализаций контролируется параметром n_init= ( docs ):

n_init : int, по умолчанию: 10

Число алгоритмов k-средних будет выполняться с разными центроидными семенами. Конечные результаты будут лучшим выходом n_init последовательных прогонов по инерции.

Если вы передадите массив в качестве аргумента init= то только одна инициализация будет выполняться с использованием центроидов, явно указанных в массиве. Вы получаете RuntimeWarning потому что вы все еще передаете значение по умолчанию n_init=10 ( вот соответствующие строки исходного кода).

На самом деле, полностью игнорировать это предупреждение, но вы можете полностью уйти, передав n_init=1 если ваш параметр init= является массивом.

  • Использование класса sklearn.cluster.SpectralClustering с параметром affinity = 'precomputed'
  • Сочетание текста и удаление пунктуации в NLTK и scikit-learn
  • Weird прогнозируемая производительность SVM в scikit-learn (SVMLIB)
  • Получение предупреждения об устаревании в Sklearn над массивом 1d, несмотря на отсутствие массива 1D
  • Как получить исходные переменные после запуска Scikit Model с использованием метода OneHotEncoding
  • scidit-learn GridSearchCV перестает работать, когда n_jobs> 1
  • Panda's get_dummies против OneHotEncoder от Sklearn () :: Что более эффективно?
  • sklearn TimeSeriesSplit cross_val_predict работает только для разделов
  • Python - лучший язык программирования в мире.