如何保存群集种子以进一步评分

时间:2017-06-12 11:52:56

标签: machine-learning cluster-analysis k-means

我正在用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将比原始数据集完全随机

1 个答案:

答案 0 :(得分:0)

请勿使用fit_predict

首先学习 new 聚类,然后“预测”。

但是你想predict使用旧的聚类。

我认为重复使用fit / predict / fit_predict的分类API在sklearn中是一个相当糟糕的设计决策。对于分类,这很方便,但聚类不是分类,大多数聚类算法根本无法“预测”新数据。