2017-01-25 4 views
-1

Итак, у меня около миллиона строк, и мне нужно их сгруппировать. Я начал с рисования случайной выборки и вычисления иерархических кластеров для получения дендрограммы. У меня есть идея, сколько там кластеров.Начальные семена для k-средств из иерархической кластеризации

Теперь я хотел бы использовать кластер K-Means для всего образца с начальными семенами предыдущего шага - иерархической кластеризацией. Но я не знаю, как получить эти исходные семена.

Ниже код для иерархической кластеризации:

from scipy.cluster.hierarchy import linkage 
from sklearn import preprocessing as prep 

seed = 85 
df_s = df.sample(frac=0.01, replace=False) 
df_s = df_s.reset_index(drop=True) 

scaler = prep.MinMaxScaler() 

df_std = scaler.fit_transform(df_s[clmns]) 

Z = linkage(df_std, 'ward') 

Тогда для K-Means, я знаю, что я могу назвать его следующим образом:

from scipy.cluster.vq import kmeans2 
centroid, label = kmeans2(df[clmns], 3) 

Я знаю, что аргумент minit, чтобы вставить NXP матрицу с семенами, но мне не ясно, как их получить.

Этот вопрос был первоначально размещен при перекрестной проверке. Но поскольку речь идет о программировании, мне было рекомендовано опубликовать его здесь.

ответ

1

С иерархической кластеризации не медиан на основе

  1. вы должны вычислить кластер центра тяжести самостоятельно (легко)
  2. кластеры, найденные по иерархической кластеризации может быть довольно плохой отправной точкой для k- означает
+0

Не могли бы вы рассказать о том, почему это плохая отправная точка для k-средств? Мы думаем сделать это для нашей кластеризации: выборка ==> иерархическая для поиска центроидов ==> kmeans – Romain

+0

Просто сделайте выборку => k-значит на образце, а затем используйте центрифуги образца как отправную точку для полного запуска k-середины. Это будет как быстрее, так и лучше. Это примерно то же, что и Fayyad et al. если я правильно помню, и одна из лучших стратегий. –

+0

Но если вам просто нужно ускорить k-середину, проверьте более быстрые реализации. Вот недавнее сравнение: Kriegel, H. P. et al. (2016). (Черное) искусство оценки времени выполнения: сравниваем ли алгоритмы или реализации ?. Информационно-информационные системы, 1-38. - По-видимому, есть огромные различия в производительности. –