一小部分布尔特征样本的PCA和频谱聚类之间的差异


10

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

我尝试了以下两种方法:

(a)在50x11矩阵上运行PCA,并选择前两个主要成分。将数据投影到2D图上并运行简单的K均值以识别聚类。

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

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

此外,还有更好的方法以2D形式显示此类数据吗?由于我的样本大小始终限制为50,并且功能集始终在10-15范围内,因此我愿意即时尝试多种方法并选择最佳方法。

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

Answers:


9

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

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

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

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


5

对于布尔(即具有两个类别的分类)功能,使用PCA的一个很好的选择是使用多重对应分析(MCA),它只是PCA对分类变量的扩展(请参阅相关主题)。对于MCA的一些背景知识,论文是Husson等人。(2010)Abdi和Valentin(2007)FactoMineR是执行MCA的出色R软件包。它为您提供了一些工具,可以在主成分上绘制观测值的二维图,这非常有见地。

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

在此处输入图片说明

在上面链接的网站上,您还将找到有关新颖过程HCPC的信息,HCPC代表“主要组件的层次聚类”,您可能会感兴趣。基本上,此方法的工作方式如下:

  • 执行MCA,
  • kk<pp
  • 在保留的PC空间中执行聚集(自下而上)的层次聚类。由于您使用PC空间中观测值的投影坐标(实数),因此可以使用欧几里德距离,并使用沃德准则进行链接(集群内方差的最小增加)。您可以按照自己喜欢的高度切割树状图,也可以根据启发式方法来让R函数剪切,
  • (可选)通过执行K均值聚类来稳定聚类。初始配置由上一步中找到的群集中心给出。

然后,您可以采用多种方法来研究聚类(最具代表性的功能,最具代表性的个人等)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.