我正在用Python构建一个k-means聚类模型。但是,我不确定如何保存群集质心以及如何将它们用于未来的评分目的。 我总是想在以后使用模型时分配相同的集群ID。 如果有人有明确的代码来展示如何做到这一点,我将不胜感激。
更新:
你好@HannounYassir,当然,对不起我以前应该这样做:
想象一下,我的数据集名称是data_clean,所有变量都是标准化的,并且事先已经清理过。
# define the cluster variables
cluster_vars=data_clean[['A' , 'B' , 'C']]
# Interpret 4 cluster solution for the data
model_4=KMeans(n_clusters=4, random_state=30)
model_4.fit(cluster_vars_copy)
clusassign=model_4.predict(cluster_vars_copy)
# Score the customers from last year by using the model created. Imagine my new dataset is clustervars_new
model_4.fit_predict(clustervars_new)
clusassign_new=model_4.fit_predict(clustervars_new)
我100%肯定我在得分阶段遗漏了一些东西,因为我没有保存质心种子。因此,它可能使用相同的模型,但我担心被分配的集群ID将比原始数据集完全随机
答案 0 :(得分:0)
请勿使用fit_predict
。
首先学习 new 聚类,然后“预测”。
但是你想predict
使用旧的聚类。
我认为重复使用fit
/ predict
/ fit_predict
的分类API在sklearn中是一个相当糟糕的设计决策。对于分类,这很方便,但聚类不是分类,大多数聚类算法根本无法“预测”新数据。