X [i]属于哪个群集?

时间:2017-12-19 10:29:55

标签: python scipy hierarchical-clustering

我有一个大数据矩阵X,我使用了Ward的层次聚类的SciPy实现,如下所示:

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

我现在希望看到X[i]所属的类。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

linkage矩阵Z,您可以获得scipy.cluster.hierarchy.fcluster的群集。

首先,我假设你想要与dendrogram的颜色相同的聚类。从docs我们可以看到color_threshold如果未指定其他内容则设置为0.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