什么是 t-SNE?

t-SNE 是通过匹配高维与二维或三维空间中的邻域概率分布,为固定样本生成非线性可视化坐标的方法。

快速了解

全称t 分布随机邻域嵌入(t-Distributed Stochastic Neighbor Embedding)
创建时间2008 年由 Laurens van der Maaten 与 Geoffrey Hinton 提出
规范文档官方规范

工作原理

用重尾分布匹配高斯邻域

对每个输入点,t-SNE 选择使概率熵符合目标 Perplexity 的高斯带宽,再把条件概率对称化。低维地图使用自由度为 1 的 Student t 分布,其重尾允许中等不相似点拉开,避免为了容纳所有邻域而把真正近邻挤在一起。

t-SNE 原始论文定义了这一概率匹配目标。由于 KL Divergence 不对称,漏掉高概率邻居的代价高于把不相关点放得稍近,这正是方法偏重局部结构的原因。

建立参数与优化协议

Perplexity 表示有效邻域尺度,不是 Cluster 数,并且必须小于样本数。初始化、Learning Rate、Early Exaggeration、停止条件、距离函数、近似算法和随机种子都可能改变地图。当前 scikit-learn 文档还说明,不同实现对 Learning Rate 的数值约定可能不同。

输入维度很高时,可先在分析训练子集内用 PCA 处理稠密数据,或用 Truncated SVD 处理稀疏数据。应比较多组合理 Perplexity 与 Seed,确认目标函数收敛,并把全部预处理与实现配置随产物保存。

在图形之外验证邻域

Distill 的控制实验表明,Cluster 面积、簇间距离、可见断层甚至随机噪声形状都可能误导。应在多个 k 上计算 Trustworthiness 或邻域召回,比较重复运行,检查已知 Control,并用独立算法和 Metric 在原始表示中验证任何聚类主张。

经典 t-SNE 属于 Transductive 方法:它为拟合样本联合优化坐标,而不是学习简单可复用映射。加入新记录可能移动旧点,常见 scikit-learn Estimator 也只提供 fit_transform,不提供通用 transform。需要稳定 Out-of-sample 坐标时,应采用明确的 Parametric 或 Landmark 方法。

主要特点

  • 优化邻域概率之间的非凸 KL Divergence
  • 通过 Perplexity 控制逐点高斯带宽
  • 在低维地图使用重尾 Student t 分布
  • 优先保留局部邻居而非全局度量
  • 结果依赖初始化、优化参数、近似方法和随机种子
  • 通常生成没有可复用坐标轴的传导式可视化

常见用途

  1. 探索图像、文本或生物表示中的局部邻域
  2. 在固定诊断样本上比较不同表示模型
  3. 在正式检验前检查混合、离群点或批次效应
  4. 不参与拟合地用标签着色评测数据
  5. 生成需要回到原特征空间验证的研究假设

示例

loading...
Loading code...

常见问题

t-SNE 图上的独立岛屿能证明真实 Cluster 存在吗?

不能。优化过程、Perplexity、密度均衡、初始化与抽样都可能制造或拆分岛屿。应把图当作假设生成工具,再在原始表示中用稳定性检验、独立聚类指标和领域证据验证分组。

t-SNE 的 Perplexity 控制什么?

Perplexity 是选择每个点高斯带宽时使用的熵目标,可理解为平滑的有效邻域规模,但不是 Cluster 数。应比较多组小于样本数的合理值,而不能为了让图更好看只调出一个结果。

t-SNE 图中的距离和坐标轴能解释吗?

坐标轴没有原始特征含义,相距较远的组之间也未必保留高维距离。主要可信信号是局部邻域。Cluster 面积、密度、方向和空白区域都可能由 Embedding 过程产生。

为什么 t-SNE 前有时先做 PCA?

把极高维稠密数据先降到中等维度,可以抑制部分弱噪声并降低成对距离计算成本。PCA 只能在预定分析或训练子集上拟合,还必须验证它是否保留本次研究关心的邻域。

训练后的 t-SNE 能把新记录放到同一张图吗?

经典 t-SNE 是联合优化拟合样本坐标的 Transductive 方法,加入新记录可能移动旧点。部分 Parametric 或 Landmark 实现支持新样本,但属于不同映射与验证契约,必须单独选择并版本化。

相关术语

相关文章