【发布时间】: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