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

时间:2019-07-13 09:43:55

标签: python hierarchical-clustering unsupervised-learning

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

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()

Dendrogram

截断簇

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()

Truncated Dendrogram

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

1 个答案:

答案 0 :(得分:0)

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

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

然后将这些簇保存在原始数据帧中

df['Cluster'] = cl

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