我正在尝试使用 Kmeans 对单词进行聚类。我有一个大文档,我首先使用 NLTK RegexpTokenizer,然后根据字数、长度进行过滤并删除停用词。接下来,我构建一个共现矩阵并用它来训练 Kmeans 模型。最后,我使用轮廓分数测试其性能。
我想可视化这些集群。这通常似乎是使用散点图和标签来完成的。当这个共现矩阵当前是 N x N 矩阵(N 是唯一单词的数量)时,如何将其减少为 x 和 y?我尝试过使用PCA:
plt.figure()
pca_2d = PCA(n_components=2)
reduced = pca_2d.fit_transform(mat)
newKm = KMeans(n_clusters=3)
labels = newKm.fit_predict(reduced)
plt.scatter(reduced[:, 0], reduced[:, 1], c=labels) # selects column 0 (all rows) as x coords and column 1 (all rows) as y. and then cluster labels.
plt.title("K-means Clustering")
plt.show()
但不确定这是否是最好或正确的方法?