在 PCA 之前或之后进行聚类?

数据挖掘 聚类 主成分分析
2021-10-10 16:34:37

我是数据科学的新手,在处理我的项目时遇到了一些问题。在使用多种方法进行聚类后,我正在尝试将多维数据可视化为 2D。(kmeans、DBSCAN、OPTICS、凝聚、光谱...)

我有多维数据。(11 列 - 属性,150K 行 - 数据数)。例如,它是一种类似稀疏的数据,这意味着一个数据具有像 (0, 0, 6.5, 0, 0, 7.5, 0, 0, 4.5, 0, 0) 这样的数值

因此,每个数据大约有 2~5 个非零属性值......

下面与我的项目并不完全相同,但它是相似的。

https://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_comparison.html

但是,由于我是新手,我对 PCA 和聚类的顺序感到好奇。我认为有两种情况。

[1。在 PCA 之前进行聚类]

这意味着,我使用 PCA 只是为了可视化。但我有一个问题。在这种情况下,如果我用原始数据处理聚类,那么所有聚类算法(上面提到的)都适合我的数据类型。

[2. 在 PCA 之后进行聚类]

在这种情况下,我还有其他问题。我的数据对组件的重要性如下所示。

                          PC1    PC2    PC3    PC4     PC5     PC6     PC7    PC8     PC9    PC10
Standard deviation     1.4173 1.1836 1.1141 1.0108 0.99109 0.95231 0.89091 0.8456 0.71542 0.64610
Proportion of Variance 0.2009 0.1401 0.1241 0.1022 0.09823 0.09069 0.07937 0.0715 0.05118 0.04174
Cumulative Proportion  0.2009 0.3410 0.4651 0.5673 0.66551 0.75620 0.83558 0.9071 0.95826 1.00000

据我了解将多元数据可视化为 2D,我必须选择 2 台 PC。(例如> PC1,PC2)。但是,我的数据的 PV 略低于我的预期。

那么,我选择(PC1,PC2)来坐标进行聚类并处理聚类可以吗?另外,我可以选择其他PC(例如PC5,PC8)来进行集群坐标吗?

1个回答
  1. 这通常用于可视化数据中是否存在任何结构。通常,您对聚类进行不同的着色以检查来自同一聚类的样本是否接近。

  2. 通常数据包含大量冗余信息。有很多维度,你会得到维度的诅咒。这可能导致几个大的和许多小的集群。通过将维度减少到一些信息特征,聚类解决方案通常会得到改进。这非常依赖于数据集。也许您的所有维度都提供了丰富的信息,那么降维将无济于事。查看评分指标,例如轮廓分析/得分、差距统计或肘部方法。

在您的情况下,大多数维度似乎都提供了丰富的信息。也许您可以删除一个或两个维度,但它可能不会对集群解决方案产生太大影响。

您可以选择任何您想要的 PC,但它们是根据他们解释的差异量排序的。您可以查看不同的原始功能对不同 PC 的贡献程度。