【问题标题】:sklearn clustering extracting id for each label in clustersklearn聚类为集群中的每个标签提取id
【发布时间】:2022-06-28 22:29:13
【问题描述】:

您好,我现在正在学习如何使用 Scikit-learn 聚类模块。我有一个读取熊猫数据框的工作脚本。

df=pd.read_csv("test.csv",index_col="identifier")

我将数据框转换为 numpy 数组

array=df.to_numpy()

然后实现聚类并绘制如下:

km=KMeans(n_clusters=25,init="random",n_init=100,max_iter=1000,tol=1e-04, random_state=0)
##get cluster labels
y_km=km.fit_predict(array)
###To plot use PCA function
pca=PCA(n_components=3)
pca_t=pca.fit_transform(array)

####
u_labels=np.unique(y_km)
fig = plt.figure(figsize=(14,10))
ax = plt.axes(projection='3d')

for i in u_labels:
    ax.scatter3D(pca_t[y_km == i , 0] , pca_t[y_km == i , 1],pca_t[y_km == i , 2],  label = i)
ax.legend()

这一切都会输出如下图:

我想尝试获得一个最终输出,该输出输出某种字典或文本文件,根据原始数组的行 ID 告诉我每个标识符所在的集群。不过,我很难弄清楚如何维护这些信息。我尝试查看是否可以使用 pandas Dataframe.to_records() 函数来维护数据类型,但无法弄清楚如何将其转换为我想要的。

【问题讨论】:

    标签: python pandas numpy scikit-learn cluster-analysis


    【解决方案1】:

    你应该试试:

    print(y_km.labels_) 
    

    这应该为您提供每个点的标签列表。

    有关 KMeans,请参阅 documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-12
      • 2020-04-27
      • 2020-07-10
      • 2020-07-19
      • 2013-12-03
      • 2019-08-13
      • 1970-01-01
      • 2013-12-18
      相关资源
      最近更新 更多