2017-12-19 8 views
-1

私は、大規模なデータ行列Xを持っていると私はそうのようウォード階層クラスタリングのscipyのダウンロードの実装を使用します。私は今X[i]が属するクラス見たいX [i]はどのクラスターに属していますか?

Z = ward(X.todense()) 
fig = plt.figure(figsize=(25, 10)) 
dn = dendrogram(Z) 

。これどうやってするの?

答えて

2

linkage行列Zから、scipy.cluster.hierarchy.fclusterでクラスタを取得できます。

まず、dendrogramの色と同じクラスターが必要だとします。 docsからは、color_threshold0.7*max(Z[:,2])に設定されていることがわかります。それが私たちが使うものです。例えば

from sklearn.datasets import make_classification 
from scipy.cluster.hierarchy import linkage, fcluster 
X, y = make_classification(n_samples=10) 
Z = linkage(X, method='ward') 
thresh = 0.7*max(Z[:,2]) 
fcluster(Z, thresh, criterion='distance') 

How to get flat clustering corresponding to color clusters in the dendrogram created by scipy

も参照してください。
関連する問題