2017-01-25 13 views
-1

私は約100万行を持っており、それらをクラスタリングする必要があります。私はランダムサンプルを描画し、樹状図を得るために階層的クラスターを計算することから始めました。これで、そこにはいくつのクラスタがあるのか​​という考えがあります。階層的クラスタリングからk-meansの初期シード

ここでは、前のステップ階層クラスタリングの初期シードを使用してサンプル全体で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-手段のために、私は次のように私はそれを呼び出すことができます知っている:

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

私はその引数minitはNXP行列を挿入することがある知っています種と一緒に、しかし、それは私にそれらを得る方法が明確ではありません。

この質問はもともとクロスバリデーションに投稿されました。しかし、それはプログラミングに関するものなので、ここに投稿することをお勧めしました。階層的クラスタリング以来

答えて

1

  1. クラスタは、階層的クラスタリングによって発見
  2. クラスタがK-ため、むしろ悪いの出発点であってもよい(簡単に)自分の重心を計算する必要があり、重心ベースではありません手段
+0

k-手段の悪い出発点であることを詳しく教えてください。私たちはクラスタリングのためにこれを行うことを考えています:centamplid ==> kmeans – Romain

+0

サンプルをサンプリング=> k-meansをサンプルにして、サンプル重心を完全なk-meansランの開始点として使用します。これはより速く、より良いでしょう。それはおおよそFayyadらのものです。私が正しくリコールすれば、そして最高の戦略の1つを示唆しています。 –

+0

しかし、k-meansをスピードアップする必要がある場合は、実装の高速化を確認してください。最近の比較があります:Kriegel、H.P。 (2016)。ランタイム評価の(黒)技術:アルゴリズムや実装を比較していますか?知識と情報システム、1-38。 - 明らかに、大きなパフォーマンスの違いがあります。 –

関連する問題