PCA是大家所熟知的降维算法,但是线性降维虽然简单,其局限性也很明显,难以实现高维数据在低维空间的可视化。
t-SNE是非线性的降维算法,能实现高维到低维的可视化映射,但因为涉及大量的条件概率、梯度下降等计算,时间和空间复杂度是平方级的,比较耗资源。
t-SNE几乎可用于所有高维数据集,广泛应用于图像处理,自然语言处理,基因组数据和语音处理。实例有:面部表情识别[2]、识别肿瘤亚群[3]、使用wordvec进行文本比较[4]等。
实现:R的Rtsne包;Python的sklearn包。
具体原理和实现代码请戳点击打开链接。