PCA 如何帮助进行 k 均值聚类分析?

机器算法验证 聚类 主成分分析 k-均值 降维
2022-01-15 19:59:11

背景:我想根据一个城市的社会经济特征对一个城市的住宅区进行分组,包括住房单元密度、人口密度、绿地面积、房价、学校/保健中心/日托中心的数量等。我想了解住宅区可以分为多少个不同的组,它们有哪些独特的特点。这些信息可以促进城市规划。

基于一些例子(参见这篇博文:PCA and K-means Clustering of Delta Aircraft),我想出分析的方法是:

  1. 首先做PCA分析。

  2. 根据 PCA 结果确定唯一组(集群)的数量(例如,使用“肘部”方法,或者替代地,解释总方差的 80% 到 90% 的组件数量)。

  3. 确定聚类数后,应用 k-means 聚类进行分类。

我的问题:似乎 PCA 组件的数量与聚类分析有关。确实如此,例如,如果我们发现 5 个 PCA 组件解释了所有特征的 90% 以上的变化,那么我们将应用 k-means 聚类并获得 5 个聚类。那么这 5 个组是否与 PCA 分析中的 5 个组件完全对应?

换句话说,我想我的问题是:PCA 分析和 k-means 聚类之间有什么联系?

更新: 感谢 Emre、xeon 和 Kirill 的投入。所以目前的答案:

  1. 在聚类分析之前进行 PCA 对作为特征提取器的降维和可视化/显示聚类也很有用。

  2. 聚类后​​做PCA可以验证聚类算法(参考:核主成分分析)。

  3. PCA 有时用于在聚类之前降低数据集的维数。然而,Yeung & Ruzzo (2000) 表明,使用 PC 而不是原始变量进行聚类并不一定会提高聚类质量。特别是,前几台 PC(包含数据中的大部分变化)不一定捕获大部分集群结构。

    • Yeung、Ka Yee 和 Walter L. Ruzzo。用于聚类基因表达数据的主成分分析的实证研究。技术报告,华盛顿大学计算机科学与工程系,2000。(pdf
  4. 在两步聚类分析之前,PCA 似乎是必要的基于 Ibes (2015),其中使用 PCA 中确定的因素进行聚类分析。

1个回答

PCA 不是一种聚类方法。但有时它有助于揭示集群。

假设您有 10 维正态分布,均值为(零向量)和一些协方差矩阵,其中 3 个方向的方差比其他方向大。应用具有 3 个分量的主成分分析将以降序为您提供这些方向,并且“肘部”方法会告诉您所选分量的数量是正确的。但是,它仍然是点云(1 个簇)。010

假设您有 10 个 10 维正态分布,均值为、...(均值几乎在线)和类似的协方差矩阵。仅使用 1 个组件(标准化后)应用 PCA 将为您提供观察所有 10 个集群的方向。分析解释方差(“弯头”方法),您将看到 1 个组件足以描述此数据。1102101010

在您显示的链接中,PCA 仅用于构建有关数据的一些假设。根据组内平方和的值(而不是通过解释的方差),通过“弯头”方法确定集群的数量。基本上,您对不同数量的集群重复 K-means 算法并计算这个平方和。如果聚类数等于数据点数,则平方和等于0