我刚刚在我的数据上运行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()
由于
答案 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]...