Как мне определить, к какому кластеру принадлежат мои данные с использованием Python? - PullRequest
0 голосов
/ 03 мая 2018

Я только что запустил PCA, а затем алгоритм кластеризации K-средних для своих данных, после запуска алгоритма я получил 3 кластера. Я пытаюсь выяснить, к каким кластерам принадлежит мой вход, чтобы собрать некоторые качественные атрибуты ввода. Мой ввод - это идентификатор клиента, а переменные, которые я использовал для кластеризации, были структурами расходов на определенные продукты

Ниже приведен код, который я запустил для K, в поисках некоторых входных данных о том, как сопоставить их с исходными данными, чтобы увидеть, к какому кластеру относится вход:

kmeans= KMeans(n_clusters=3)
X_clustered=kmeans.fit_predict(x_10d)

LABEL_COLOR_MAP = {0:'r', 1 : 'g' ,2 : 'b'}
label_color=[LABEL_COLOR_MAP[l] for l in X_clustered]

#plot the scatter diagram

plt.figure(figsize=(7,7))
plt.scatter(x_10d[:,0],x_10d[:,2] , c=label_color, alpha=0.5)
plt.show()

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Для группировки экземпляров по назначенному идентификатору кластера

N_CLUSTERS = 3
clusters = [x_10d[X_clustered == i] for i in range(N_CLUSTERS)]
# replace x_10d with where you want to retrieve data

# to have a look
for i, c in enumerate(clusters):
    print('Cluster {} has {} members: {}...'.format(i, len(c), c[0]))

# which prints
# Cluster 0 has 37 members: [0.95690664 0.07578273 0.0094432 ]...
# Cluster 1 has 30 members: [0.03124354 0.97932615 0.47270528]...
# Cluster 2 has 33 members: [0.26331688 0.5039502  0.72568873]...
0 голосов
/ 03 мая 2018

Если вы хотите добавить метки кластера обратно в ваш фрейм данных, и, предполагая, что x_10d - ваш фрейм данных, вы можете сделать:

x_10d ["cluster"] = X_clustered

Это добавит новый столбец в вашем фрейме данных с именем «cluster», который должен содержать метку кластера для каждой из ваших строк.

...