如何从 python 中的分层聚类中形成的聚类创建数据集



我已经使用分层聚类形成了聚类,并希望将这些单独的聚类单独存储在数据集中以供进一步处理,但我不知道该怎么做。

Z = linkage(df, 'ward', metric='euclidean')

创建树状图

plt.figure(figsize=(50, 10))
plt.title('Hierarchical Clustering Dendrogram')
plt.xlabel('sample index')
plt.ylabel('distance')
dendrogram(Z, leaf_rotation=90., leaf_font_size=8.,)
plt.show()

树状图

截断集群

plt.title('Hierarchical Clustering Dendrogram (truncated)')
plt.xlabel('sample index or (cluster size)')
plt.ylabel('distance')
dendrogram(Z, truncate_mode='lastp', p=12, leaf_rotation=90., leaf_font_size=12.,)
plt.axhline(y=5000, color='r', linestyle='--')
plt.show()

截断的树状图

现在我想知道如何分别保存四个集群或如何分离它们?

使用任何聚类方法进一步创建聚类

from sklearn.cluster import AgglomerativeClustering
cluster = AgglomerativeClustering(n_clusters=4, affinity='euclidean', linkage='ward')  
cl = cluster.fit_predict(df)

然后将这些聚类保存在原始数据框中

df['Cluster'] = cl

现在,您可以根据集群的值对集群进行排序

最新更新