考虑到特征数量不变,Barnes-Hut t-SNE的复杂度为,随机投影和 PCA 的复杂度为,这使得它们对于非常大的数据集“负担得起”。
另一方面,依赖多维缩放的方法具有复杂度。
是否有其他的降维技术(除了琐碎的技术,当然比如查看前列)其复杂性低于?
考虑到特征数量不变,Barnes-Hut t-SNE的复杂度为,随机投影和 PCA 的复杂度为,这使得它们对于非常大的数据集“负担得起”。
另一方面,依赖多维缩放的方法具有复杂度。
是否有其他的降维技术(除了琐碎的技术,当然比如查看前列)其复杂性低于?
一个有趣的选择是探索基于神经的降维。最常用的降维网络类型,自动编码器,可以以为代价进行训练,其中表示训练迭代(是独立于训练数据的超参数) . 因此,训练复杂度简化为。
您可以从查看 Hinton 和 Salakhutdinov [1] 的 2006 年研讨会工作开始。从那时起,事情发生了很大变化。现在大部分注意力是通过变分自动编码器 [2] 获得的,但基本思想(在其输出层重建输入并在其间存在瓶颈层的网络)保持不变。请注意,与 PCA 和 RP 不同,自动编码器执行非线性降维。此外,与 t-SNE 不同,自动编码器可以转换看不见的样本,而无需重新训练整个模型。
在实践方面,我建议看一下这篇文章,其中详细介绍了如何使用精彩的库 Keras 实现不同类型的自动编码器。
[1] Hinton, GE, & Salakhutdinov, RR (2006)。使用神经网络降低数据的维数。科学,313(5786),504-507。
[2] Kingma, DP, & Welling, M. (2013)。自动编码变分贝叶斯。arXiv 预印本 arXiv:1312.6114。
除了已经提到的自动编码器之外,还可以尝试通过随机投影或随机子空间方法来利用Johnson-Lindenstrauss 引理。随机投影是, 和维度的样本数和目标维度,参见 [1]。
用谷歌搜索一下会得到一些最近的结果,特别是对于稀疏数据集。