簡體   English   中英

如何使用Python查找我的數據屬於哪個群集?

[英]How do I find which cluster my data belongs to using Python?

我只運行了PCA,然后對數據運行了K-means聚類算法,運行該算法后,我得到了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()

謝謝

如果要將群集標簽重新添加到數據框中,並假設x_10d是數據框,則可以執行以下操作:

x_10d [“ cluster”] = X_clustered

這將在您的數據框中添加一個名為“群集”的新列,該列應包含每行的群集標簽。

按實例分配的集群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]...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM