在 PCA 上应用 KMeans 和在 KMeans 上应用 PCA 之间的区别

数据挖掘 聚类 可视化 k-均值 降维 主成分分析
2022-02-25 12:50:23

简短的问题:

如标题中所述,我对在PCA-ed向量上应用 KMeans 和在KMean-ed向量上应用 PCA 之间的区别感兴趣。

长问题:

假设我们有一个词嵌入数据集。数据集中的每个单词都嵌入在 R300 中。

我们想要对数据集进行探索性分析,为此我们决定应用 KMeans,以便将单词分组为 10 个集群(任意选择的集群数量)。

完成该过程后,我们希望在 R3 中可视化结果。我们可以通过两种策略来解决这个问题;

策略 1 - 对 R300 个向量和 PCA 执行 KMeans 直到 R3:

  1. 将 KMeans 应用于 R300 嵌入。
  2. 对 R300 嵌入执行 PCA 并获得 R3 向量。
  3. 根据通过 KMeans 获得的聚类绘制 R3 向量

结果: http: //kmeanspca.000webhostapp.com/KMeans_PCA_R3.html

策略 2 - 在 R300 上执行 PCA 直到 R3,然后是 KMeans:

  1. 对 R300 嵌入执行 PCA 并获得 R3 向量。
  2. 将 KMeans 应用于 R3 嵌入。
  3. 根据通过 KMeans 获得的聚类绘制 R3 向量

结果: http: //kmeanspca.000webhostapp.com/PCA_KMeans_R3.html

得到的结果有什么不同吗?有什么解释吗?

如果这两种策略实际上是相同的。这是为什么?

2个回答

它们是有区别的。在您的第一个策略中,对 3 维空间的投影并不能确保集群不重叠(而如果您先执行投影则可以)。

这是因为一些集群是分离的,但它们的分离表面在某种程度上与 PCA 正交(或接近)。

如果您增加 PCA 的数量或减少集群的数量,两种方法之间的差异可能会变得可以忽略不计。

我建议在建模之前将此处可用的 GloVe 信息:Stanford Uni Glove应用于您的单词结构。

通过这种方式,您可以提取有意义的概率密度。如果你然后 PCA 来减少维度,至少你有相互关联的上下文来解释交互。

实际上,您将获得更好的结果,因为密集向量在相关性方面更具代表性,并且它们与其他单词的关系已确定。这是因为密集向量是交互的一种表示形式。此过程将允许您以有意义的方式使用 pca 减小尺寸;)