python - 如何从 python 中的 Hierarchical Clustering 中形成的集群创建数据集?
问题描述
我已经使用层次聚类形成了集群,并希望将这些单独的集群分别存储在数据集中以供进一步处理,但我不知道该怎么做。
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