布尔特征小样本集的 PCA 和谱聚类之间的差异

机器算法验证 聚类 数据可视化 主成分分析 k-均值 光谱分析
2022-03-08 17:40:37

我有一个包含 50 个样本的数据集。每个样本由 11 个(可能相关的)布尔特征组成。我想了解如何在 2D 图上可视化这些样本,并检查 50 个样本中是否存在集群/分组。

我尝试了以下两种方法:

(a) 在 50x11 矩阵上运行 PCA 并选择前两个主成分。将数据投影到 2D 图上并运行简单的 K-means 来识别集群。

(b) 构造一个 50x50(余弦)相似度矩阵。运行谱聚类以降低维数,然后再次运行 K-means。

进行直接 PCA 与使用相似矩阵的特征值之间的概念区别是什么?这个比那个好吗?

此外,是否有更好的方法可以在 2D 中可视化此类数据?由于我的样本量总是限制在 50 并且我的特征集总是在 10-15 范围内,我愿意即时尝试多种方法并选择最好的方法。

相关问题: 通过聚类或 PCA 对样本进行分组

2个回答

进行直接 PCA 与使用相似矩阵的特征值之间的概念区别是什么?

PCA 是在协方差或相关矩阵上完成的,但谱聚类可以采用任何相似矩阵(例如,用余弦相似度构建)并在那里找到聚类。

其次,谱聚类算法基于图划分(通常是关于找到图的最佳切割),而 PCA 则找到具有大部分方差的方向。尽管在这两种情况下我们最终都找到了特征向量,但概念上的方法是不同的。

最后,我看到 PCA 和谱聚类有不同的用途:一个是降维技术,另一个是聚类方法(但它是通过降维完成的)

对于布尔(即具有两个类别的分类)特征,使用 PCA 的一个很好的替代方法是使用多重对应分析 (MCA),它只是 PCA 对分类变量的扩展(参见相关线程)。关于 MCA 的一些背景,论文是Husson 等人。(2010)Abdi 和 Valentin (2007)执行 MCA 的优秀 R 包是FactoMineR它为您提供了绘制主成分上观察值载荷的二维图的工具,非常有见地。

下面是我过去的一个研究项目中的两个地图示例(使用 ggplot2 绘制)。我只有大约 60 个观察结果,结果很好。第一张图代表空间 PC1-PC2 中的观察结果,第二张图在空间 PC3-PC4 中……变量也在图中表示,这有助于解释维度的含义。从其中几个地图中收集见解可以让您对数据中正在发生的事情有一个很好的了解。

在此处输入图像描述

在上面链接的网站上,您还可以找到有关新程序 HCPC 的信息,它代表主成分的层次聚类,您可能会感兴趣。基本上,此方法的工作原理如下:

  • 执行 MCA,
  • 保留前个维度(其中,其中是您的原始特征数)。此步骤很有用,因为它消除了一些噪声,因此允许更稳定的聚类,kk<pp
  • 在保留 PC 的空间中执行凝聚(自下而上)层次聚类。由于您使用 PC 空间中观测值的投影坐标(实数),因此您可以使用欧几里得距离和 Ward 的链接标准(集群内方差的最小增加)。您可以在您喜欢的高度切割树状图,或者根据一些启发式方法让 R 函数切割,
  • (可选)通过执行 K-means 聚类来稳定聚类。初始配置由上一步中找到的集群中心给出。

然后,您有很多方法可以调查集群(最具代表性的特征、最具代表性的个体等)