当目标只是降低维度时,为什么经常在 t-sne 之前使用 PCA 来解决问题?

数据挖掘 主成分分析 特纳
2022-02-23 19:17:16

例如:Matlab 的 t-sne 教程经常使用 PCA

https://www.mathworks.com/help/stats/tsne-settings.html

" 使用 t-SNE 处理数据

使用 t-SNE 获得数据集群的二维类似物。使用 Barnes-Hut 算法在这个大型数据集上获得更好的性能。使用 PCA 将初始尺寸从 784 减少到 50。 <- (1) 如果我们要在 PCA 之后使用 t-sne 将尺寸减少到 2,为什么我们在这里首先使用 PCA 将尺寸减少到 50?

Matlab 教程代码:https ://www.mathworks.com/help/stats/tsne-settings.html


rng default % for reproducibility 

Y = tsne(X,'Algorithm','barneshut','NumPCAComponents',50); 

figure gscatter(Y(:,1),Y(:,2),L) 

1)见上面加粗的问题

2)你会用谷歌搜索什么来找到这个?

我在谷歌上搜索过“当目标只是降低维度时,为什么经常在 t-sne 之前使用 PCA 来解决问题?”

1个回答

t-SNE 在计算上比 PCA 更昂贵。许多示例可能只是为了简化问题而使用 PCA。

此外,这里解释:

如果数据集是高维的,建议进行主成分分析,否则维数灾难可能是一个问题。TSNE 假设局部线性在流形可能变化的高维度中可能不成立,而 PCA 可以通过降低数据的维度来帮助缓解这个问题。

换句话说,t-SNE 似乎受到数据高维的影响。它通常用于表示 2-3 维的流形,而不是像 PCA 那样的数十或数百维。恕我直言,它主要是一个可视化工具。


在谷歌搜索部分,我建议您只搜索搜索中最相关的元素,而不是清晰的句子。我用谷歌搜索了类似的东西:"why pca before tsne"找到有用的东西就足够了。浏览器不需要语法连贯性,只需要正确的关键字。