外观
PCA 与 t-SNE 的对比
PCA vs. t-SNE
最后,我们来了解一下 PCA 和 t-SNE 算法之间的核心区别。下面这张表为你整洁地总结了两种算法之间的主要区别:

- 虽然许多人把 PCA 理解为一种数据可视化
- 算法,但它主要是一种降维算法。
- 而 t-SNE 则是一种数据可视化算法。我们用它把高维数据投影到低维(主要是二维)。

- PCA 是一种确定性算法。因此,如果我们在同一个数据集上运行两次该算法,我们总是会得到相同的结果。
- 而 t-SNE 是一种随机性算法。因此,重新运行该算法可能会得到完全不同的结果。
就结果的唯一性和可解释性而言……

PCA 对数据点的投影总是有一个唯一解。简单来说,PCA 只是旋转坐标轴,使得我们得到的新特征互不相关。
而 t-SNE 如上所述,可能给出完全不同的结果,其解释本质上是主观的。
PCA 是一种线性的降维方法。它只能找到一个线性子空间来投影给定的数据集。KernelPCA 解决了这个问题,我们在本章前面已经介绍过。
t-SNE 是一种非线性的方法。它可以处理非线性的数据集。

- PCA 只致力于保留数据的全局方差。因此,局部关系(比如簇)在投影之后往往会丢失,如下图所示:
- t-SNE 保留了局部关系。因此,在高维空间中位于同一个簇中的数据点,在低维空间中更有可能仍然聚在一起。
- 在 t-SNE 中,我们并没有显式地指定要保留全局结构。但它通常确实会生成分离良好的簇。
- 尽管如此,正如上一章所讨论的,低维空间中两个簇之间的距离,永远不能作为高维空间中簇分离程度的指标。
