Как получить идентификаторы кластера из модели обучения scikit? - PullRequest
0 голосов
/ 11 июля 2019

Я выполнил свой код в 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 голосов
/ 11 июля 2019

Если у вас есть данные X уже в фрейме данных df, то легко добавить столбец с идентификатором кластера; Вот пример с фиктивными 2D данными и 2 кластерами:

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)

Результат

   Column1  Column2  clusterID
0       10        2          1
1        1        4          0
2        1        0          0
3        1        2          0
4       10        4          1
5       10        0          1
0 голосов
/ 11 июля 2019

Вы можете сохранить свою модель в качестве рассола и передать файл рассылки инженеру по обработке данных

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