X[i] 属于哪个簇?

Which cluster does X[i] belong to?

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

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

我现在想看看 类 X[i] 属于哪个。我该怎么做?

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