一句话定义:t-SNE(t-distributed Stochastic Neighbor AI 词典:Embedding">Embedding,t 分布随机邻域嵌入)和 UMAP(Uniform Manifold Approximation and Projection,统一流形近似与投影)是两种降维可视化方法,作用是把几十上百维的向量压到二维平面上画成一张散点图,让你用眼睛看出数据有没有聚成团。
原理:把"谁和谁像"搬到纸上
先打个比方。假设你有一群人,你只知道两两之间的亲疏程度,现在要在一张纸上给他们排座位,要求"本来关系好的人,在纸上也坐得近"。t-SNE 干的就是这件事:它在高维空间里算出每个点和邻居的相似度,再在二维平面上重新摆位置,不断微调,直到二维里的邻居关系尽量贴合高维里的邻居关系。为了不让人全挤在中间,它在低维用了 t 分布这种"长尾巴"的分布——这就是名字里 t 的来历。
UMAP 想做类似的事,但它额外假设数据躺在一个弯曲的低维曲面上(流形),先把这个曲面近似出来再投影。直观感受是:t-SNE 更执着于还原局部邻居,UMAP 在局部和整体骨架之间找平衡,跑起来通常更快,而且能处理新来的数据点。
关键:不要过度解读簇间距离
这是最容易踩的坑。t-SNE 图里两个簇离得远,不代表它们在原始空间里真的差很多;簇的大小也不代表样本量或离散程度;有时候它还会凭空"切开"一个本该连续的整体。这些是算法为了保住局部结构而牺牲全局信息的代价。UMAP 对全局结构保留得稍好一点,但同样不足以支撑"这两类差别很大"这种结论。图只能回答一个问题:这批数据里有没有明显的分组。
和其他方法的区别
| 方法 | 性质 | 擅长 | 主要用途 |
|---|---|---|---|
| PCA(主成分分析) | 线性投影 | 保留全局方差,快、可解释 | 预降维、特征压缩 |
| t-SNE | 非线性、只保证局部 | 局部邻居还原好 | 画图看聚类 |
| UMAP | 非线性、局部+部分全局 | 快、可复用到新样本 | 画图、有时也用作特征 |
| 自编码器 | 学一个编码函数 | 可端到端训练 | 表示学习,不只是看图 |
对从业者的实际意义
最常见的用法是检查嵌入(embedding)质量:跑完一个模型,把向量降维画出来,看看同类是不是挨在一起、有没有长尾类别被压扁、有没有离群点需要清洗。惯用套路是先做 PCA 降到几十维再去噪,再跑 t-SNE 或 UMAP,调一调 perplexity 或 n_neighbors 这类邻域参数。要记住换一个随机种子图就变样,所以它适合"看一眼",不适合当证据。真要下结论,回到原始空间的定量指标;具体参数与实现细节以官方文档为准。
