是否存在 PCA 比 t-SNE 更适合的情况?

机器算法验证 主成分分析 特纳
2022-01-30 03:23:09

我想看看 7 种文本校正行为(校正文本所花费的时间、击键次数等)如何相互关联。这些措施是相关的。我运行了一个 PCA 来查看测量如何投射到 PC1 和 PC2 上,这避免了在测量之间运行单独的双向相关测试的重叠。

有人问我为什么不使用 t-SNE,因为某些度量之间的关系可能是非线性的。

我可以看到允许非线性如何改善这一点,但我想知道在这种情况下是否有充分的理由使用 PCA 而不是 t-SNE?我对根据它们与度量的关系对文本进行聚类不感兴趣,而是对度量本身之间的关系感兴趣。

(我猜 EFA 也可能是一种更好/另一种方法,但这是一个不同的讨论。)与其他方法相比,这里关于 t-SNE 的帖子很少,所以这个问题似乎值得一问。

4个回答

t -SNE 是机器学习的一个伟大部分,但人们可以找到许多使用 PCA 代替它的理由。在我的脑海中,我会提到五个。与使用的大多数其他计算方法一样, -SNE 并不是灵丹妙药,在某些情况下,有很多原因使其成为次优选择。让我简要提及几点:t

  1. 最终解的随机性PCA 是确定性的; -SNE 不是。一个人得到了一个很好的可视化,然后她的同事得到了另一个可视化,然后他们得到了艺术,这看起来更好,如果差异是有意义的......在 PCA 中,正确答案提出的问题是有保证的。 -SNE 可能有多个最小值,可能导致不同的解决方案。这需要多次运行,并引发有关结果可重复性的问题。t0.03%KL(P||Q)t

  2. 映射的可解释性这与上述观点有关,但让我们假设团队已经同意特定的随机种子/运行。现在问题变成了这显示了什么...... -SNE 试图仅正确映射本地/邻居,因此我们对该嵌入的见解应该非常谨慎;全球趋势没有被准确地表示出来(这对于可视化来说可能是一件好事)。另一方面,PCA 只是我们初始协方差矩阵的对角旋转,特征向量代表我们原始数据跨越的空间中的新轴向系统。我们可以直接解释特定 PCA 的作用。t

  3. 应用于新的/看不见的数据 -SNE没有从原始空间到新的(较低的)维度学习函数,这是一个问题。就此而言, -SNE 是一种非参数学习算法,因此使用参数算法进行逼近是一个不适定问题。嵌入是通过直接在低维空间中移动数据来学习的。这意味着一个人没有得到一个特征向量或类似的构造来用于新数据。相反,使用 PCA,特征向量提供了一个新的轴系统,可以直接用于投影新数据。[显然可以尝试训练一个深度网络来ttt-SNE 映射(您可以在该视频的 ~46' 处听到 van der Maaten 博士提出类似的建议)但显然不存在简单的解决方案。]

  4. 资料不全 -SNE不处理不完整的数据。公平地说,PCA 也不处理它​​们,但是 PCA 对不完整数据的许多扩展(例如概率 PCA)已经存在并且几乎是标准建模例程。 -SNE 目前无法处理不完整的数据(显然首先训练概率 PCA 并将 PC 分数作为输入传递给 -SNE)。ttt

  5. 不是(太)小情况k -SNE 解决了一个被称为拥挤问题的问题,即高维中有些相似的点在低维中相互重叠(更多here)。现在,随着您增加使用的尺寸,拥挤问题变得不那么严重,即。您试图通过使用 -SNE 解决的问题会减弱。您可以解决此问题,但这并非易事。因此,如果您需要一个维向量作为缩减集并且不是非常小,则生成解决方案的最优性是有问题的。另一方面,PCA 始终提供ttkkk解释了方差方面的最佳线性组合。(感谢@amoeba 注意到我在第一次尝试概述这一点时弄得一团糟。)

我没有提到有关计算要求的问题(例如速度或内存大小),也没有提及有关选择相关超参数的问题(例如困惑度)。我认为这些是 -SNE 方法的内部问题,在将其与另一种算法进行比较时无关紧要。t

总而言之, -SNE 很棒,但所有算法在适用性方面都有其局限性。我几乎在任何我得到的新数据集上都使用 -SNE 作为解释性数据分析工具。我认为虽然它有一些限制,但它并不像 PCA 那样适用。让我强调一下,PCA 也不完美。例如,基于 PCA 的可视化通常不如 -SNE 的可视化。ttt

https://stats.stackexchange.com/a/249520/7828

是一个很好的一般答案。

我想更多地关注你的问题。您显然想了解您的样本与 7 个输入变量之间的关系。这是 t-SNE 不做的事情。SNE 和 t-SNE 的想法是让邻居彼此靠近,(几乎)完全忽略全局结构。

这对于可视化非常有用,因为可以将相似的项目彼此相邻绘制(而不是彼此重叠,参见拥挤)。

这不利于进一步分析。全局结构丢失,某些对象可能已被阻止移动到它们的邻居,并且不同组之间的分离在数量上没有保留。这主要是为什么例如投影上的聚类通常不能很好地工作。

PCA 则完全相反。它试图保留全局属性(具有高方差的特征向量),同时它可能会丢失邻居之间的低方差偏差。

这里已经给出了许多非常好的观点。但是,我想强调一些。一是 PCA 将保留 tSNE 不会保留的东西。这可能是好是坏,取决于您要达到的目标。每个示例 tSNE 不会保留集群大小,而 PCA 会(参见下图,来自tSNE 与 PCA

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

作为一种启发式方法,您可以记住,PCA 将保留点之间的较大距离,而 tSNE 将保留在其表示中彼此接近的点。因此,每种方法的性能在很大程度上取决于数据集!

给出一个应用角度,PCA 和 t-SNE 并不相互排斥。在生物学的某些领域,我们正在处理 t-SNE 根本无法扩展的高维数据。因此,我们首先使用 PCA 来降低数据的维数,然后,采用最重要的主成分,我们应用 t-SNE(或类似 UMAP 的非线性降维方法)进行可视化。