📢 转载信息
原文链接:https://machinelearningmastery.com/choosing-between-pca-and-t-sne-for-visualization/
原文作者:Jason Brownlee
在数据科学中,可视化是理解复杂数据集的关键一步。然而,当数据具有高维度时,直接可视化是不可能的。我们需要使用降维技术将数据投影到低维空间(通常是二维或三维),以便进行图形化表示。在众多降维技术中,主成分分析(PCA)和t-分布随机邻域嵌入(t-SNE)是两个最常被提及和使用的算法。本文将深入探讨PCA和t-SNE,以帮助您了解何时以及如何选择最适合您需求的算法。
在深入了解细节之前,我们先明确它们的核心目标:都是将高维数据映射到低维空间进行可视化。但它们实现这一目标的方式、侧重点以及对结果的影响却大不相同。
主成分分析(PCA)
PCA是一种线性降维技术,它通过识别数据中方差最大的方向(即主成分)来进行降维。它本质上是在尝试找到一个低维子空间,使得数据投影到这个子空间上时,数据的方差最大化。
PCA的工作原理
PCA的目的是找到一组新的正交基(主成分),这些基代表了数据中最大的方差。第一个主成分捕获了最大的方差,第二个捕获了次大的方差,以此类推。通过保留前k个主成分,可以将数据从原始的D维空间压缩到k维空间,同时尽可能多地保留原始数据的内在信息。
PCA的优点在于其快速、可重复且全局性强。
- 线性:它只能捕获数据中的线性结构。
- 确定性:对于给定的数据集,PCA的结果是唯一的。
- 全局结构:它试图在降维后的空间中保留整体的数据结构和方差。
- 速度快:计算效率高,适合处理大规模数据集。
PCA的局限性
PCA的主要缺点是它假设数据中的重要结构是线性的。如果高维数据内在具有复杂的非线性结构,PCA可能无法很好地揭示这些结构,导致可视化效果不佳。
t-分布随机邻域嵌入(t-SNE)
t-SNE是一种非线性降维技术,专为高维数据的可视化而设计。与PCA不同,t-SNE的目标是确保低维嵌入空间中的点对之间的距离,尽可能地匹配高维空间中点对之间的概率相似性。
t-SNE的工作原理
t-SNE首先在高维空间中计算每对数据点之间的相似度(通常使用高斯分布来建模邻近关系)。然后,它在低维空间中尝试构建一组相似度(通常使用t分布建模),并使用一种优化过程(如梯度下降)来最小化高维和低维相似度之间的差异(即KL散度)。
t-SNE的强大之处在于其对局部结构的关注,这使其在揭示数据中的簇(Clusters)方面非常有效。
- 非线性:能够捕获复杂的数据结构。
- 局部结构保持:非常擅长将相似的点映射到低维空间中彼此靠近的位置。
- 概率模型:基于概率相似性而非简单的几何距离。
t-SNE的局限性
t-SNE的主要缺点是其计算成本高、结果不确定且依赖于参数。
- 计算密集:对于非常大的数据集,t-SNE的计算时间会显著增加。
- 随机性:由于优化过程涉及随机初始化,多次运行t-SNE可能会产生不同的嵌入结果。
- 全局结构保留差:t-SNE主要关注局部结构,因此低维空间中不同簇之间的距离可能没有物理意义。例如,两个分开的簇,它们在t-SNE图上的距离远近并不能说明它们在高维空间中的真实距离。
- 参数敏感:困惑度(Perplexity)等参数对结果影响很大。
PCA vs t-SNE:何时使用哪个?
选择PCA还是t-SNE取决于您的具体目标以及数据的特性。
何时首选PCA?
1. 数据预处理:当您需要快速、可重复地减少维度,例如作为机器学习模型(如聚类或分类)的输入特征时,PCA通常是首选。
2. 探索线性结构:如果您怀疑数据中的主要结构是线性的,或者您需要一个容易解释的低维表示。
3. 大规模数据集:当数据集非常庞大,对计算速度有严格要求时。
4. 结果可解释性:PCA的主成分是原始特征的线性组合,更容易解释每个维度代表的含义。
何时首选t-SNE?
1. 可视化簇结构:当您的主要目标是查看高维数据中是否存在清晰的、非线性的簇结构时,t-SNE通常表现更出色。
2. 非线性数据:如果数据分布复杂且存在弯曲或非线性模式。
3. 较小/中等数据集:当计算资源允许时,t-SNE是探索局部数据结构的有力工具。
混合使用策略(推荐)
在实践中,最佳的方法往往是先使用PCA,再使用t-SNE。
这是一种常见的策略:首先使用PCA将数据降到适中的维度(例如,从1000维降到50维),以去除噪声和冗余,并大大加速后续的t-SNE计算。然后,在这个较小的维度空间上应用t-SNE(降到2维或3维)进行可视化。
结论
PCA和t-SNE是降维和可视化的强大工具,但它们服务于不同的目的。PCA侧重于全局、线性结构和速度;t-SNE侧重于局部、非线性簇的发现。
对于需要快速、可解释的特征提取,选择PCA。对于深入探索复杂数据集中的簇结构,选择t-SNE(通常配合PCA预处理)。理解这两种方法的内在机制和权衡,是成为高效数据科学家的关键技能之一。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区