如何从scikit学习模型获取群集ID?

时间:2019-07-11 12:35:38

标签: machine-learning scikit-learn k-means

我在scikit-learn中完成了我的代码,需要将我的代码传递给数据工程师。

kmeans = KMeans(n_clusters = 5, init = 'k-means++', random_state = 42)
y_kmeans = kmeans.fit_predict(X)

目标是使用k均值对人群进行细分。我需要将ID 5群集的输出输出到报告(CSV)上,因此需要在其自己的列中。拟合模型后该如何处理?

2 个答案:

答案 0 :(得分:0)

您可以将模型另存为泡菜,并将泡菜文件提供给数据工程师

import pickle
filename = 'your_model.pkl'
pickle.dump(model, open(filename, 'wb'))

答案 1 :(得分:0)

如果您的数据X已经在数据帧Warning: Ignoring unknown aesthetics: text 中,则添加具有集群ID的列很简单;这是一个虚拟2D数据和2个簇的示例:

df

结果是

import numpy as np
import pandas as pd
from sklearn.cluster import KMeans

# dummy data:
X = np.array([[10, 2], [1, 4], [1, 0],
              [1, 2], [10, 4], [10, 0]])
df = pd.DataFrame({'Column1':X[:,0],'Column2':X[:,1]})

kmeans = KMeans(n_clusters=2, init = 'k-means++', random_state=42).fit(X)
kmeans.labels_
# array([1, 0, 0, 0, 1, 1])

df['clusterID'] = kmeans.labels_
print(df)