【发布时间】:2020-11-22 22:25:09
【问题描述】:
我已经建立了一个聚类模型,可以很好地分割数据。我使用了一个两步过程(KMeans 然后 Hierarchical)来避免在我直接尝试 Hierarchical 时发生的内存问题(参见参考资料https://www.dummies.com/programming/big-data/data-science/data-science-performing-hierarchical-clustering-with-python/)。
我的问题与现在如何利用此过程来对新信息进行评分有关。我试图保持我的代码结构化,我想“导出”和“导入”相关代码,但我不知道如何导出这两个模型。这是我的代码:
data_scaled = normalize(col_final_df)
data_scaled = pd.DataFrame(data_scaled, columns=col_final_df.columns)
clustering = KMeans(n_clusters=km_seg, n_init=10,
random_state=1)
clustering.fit(data_scaled)
post_clust_centres = clustering.cluster_centers_
post_clust_data_mapping = {case: cluster for case, cluster in enumerate(clustering.labels_)}
print('KMeans analysis complete. Composing hierarchical segmentation of KMeans presently...')
Hclustering = AgglomerativeClustering(n_clusters=29, affinity="cosine", linkage ="complete")
Hclustering.fit(post_clust_centres)
print('Hierarchical segmentation complete. Composing dendrogram...')
plt.title('Hierarchical Clustering Dendrogram')
plot_dendrogram(Hclustering, labels=Hclustering.labels_)
plt.show()
H_mapping = {case: cluster for case,
cluster in enumerate(Hclustering.labels_)}
final_mapping = {case: H_mapping[post_clust_data_mapping[case]]
for case in post_clust_data_mapping}
【问题讨论】:
-
好的..所以我发现 fit_predict() 会将此分数应用于新样本。但是我如何导出权重,以便我可以在不同的函数中使用,而不必为此重新拟合我的原始数据。
-
据我了解,您需要保存模型/权重。您是否尝试过将模型保存到泡菜中? geeksforgeeks.org/understanding-python-pickling-example
-
我认为我不需要使用酸洗,但事实证明这是一个优雅的解决方案。谢谢!将我的解决方案粘贴为答案。
标签: python hierarchical-clustering