如何使用Python查找我的数据属于哪个群集?

时间:2018-05-03 03:38:24

标签: python python-3.x cluster-analysis k-means

我刚刚在我的数据上运行PCA然后运行K-means Clustering算法,运行算法后我得到3个集群。我试图弄清楚我的输入属于哪些集群,以便收集关于输入的一些定性属性。我的输入是客户ID,我用于聚类的变量是某些产品的支出模式

下面是我为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 :(得分:0)

如果要在数据框中添加群集标签,并假设x_10d是您的数据框,则可以执行以下操作:

x_10d [" cluster"] = X_clustered

这将在您的数据框中添加一个名为" cluster"的新列。其中应包含每个行的群集标签。

答案 1 :(得分:0)

按指定的群集ID

对实例进行分组
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]...