常见降维方法怎么选?PCA、t-SNE、UMAP 有什么区别?
简化版
降维方法要按目标选择:PCA 保留线性方差,随机投影近似保持距离,t-SNE/UMAP 强调可视化邻域,自编码器学习非线性表示。评估不能只看二维图漂亮,还要看重构、邻域保持、下游性能、稳定性和变换新样本的能力。
详细版
- 降维目标可能是压缩、去噪、可视化或建模。
- PCA 方向可解释但只捕捉线性结构。
- t-SNE 的全局距离和簇面积不可靠。
- UMAP 可变换新样本但仍依赖超参数与随机性。
- 监督任务选维度必须在交叉验证内部完成。
完整版教学
一、问题定义与核心直觉
不同方法保留的几何对象不同。若需要压缩后重建,应优先检查重构误差;若需要近邻检索,应测 trustworthiness/recall;若只做展示,必须标注随机种子和参数并避免对簇间距做强解释。
降维也会泄漏。先在全数据拟合 PCA 再做验证,相当于让验证分布参与表示学习;正确做法是每个训练折独立拟合变换,再应用到验证折。
二、机制与公式
PCA: maximize Var(Xw), subject to ||w||=1
neighbor_recall=|N_k_original intersect N_k_embed|/k
PCA 的目标是最大化投影方差,近邻召回则衡量局部集合保持;二者优化对象不同。PCA 轴是原特征的线性组合,可查看载荷,但轴符号任意、相关特征会共同加载,不能把“可查看载荷”夸成天然业务解释。
三、带数字的推演
原始 200 维特征,PCA 取 30 维保留 92% 方差,验证 AUC 从 0.84 降到 0.835、推理耗时下降 60%。若目标是部署压缩,这可能优于保留 99% 方差但几乎不加速的 100 维方案。
92% 解释方差不是独立验收目标;此处应由 0.005 的 AUC 损失是否可接受与 60% 延迟收益共同决定。若采用 UMAP 等邻域方法,还应固定随机种子并验证新样本 transform 的漂移与近邻保持。
四、方案对比
| 方案 | 优势 | 代价或边界 |
|---|---|---|
| PCA | 线性、可逆近似、可变换新样本 | 受缩放和离群值影响 |
| 随机投影 | 快且适合高维稀疏 | 单轴难解释 |
| t-SNE/UMAP | 局部可视化强 | 全局几何与稳定性有限 |
五、工程执行流程
明确保留对象 -> 训练折拟合缩放/降维 -> 扫描目标维数 -> 比较结构指标
-> 验证下游性能与成本 -> 多种子检查 -> 保存完整变换链路
在监督任务中,维数本身也是超参数:每个交叉验证训练折都要重新拟合缩放与降维,再在对应验证折选择维数。先用全量数据选维数会让验证分布参与表示学习。
六、边界条件与上线代价
降维后的轴可能混合敏感属性代理,压缩并不自动匿名化;可逆性、成员推断和公平性仍需审查。
高维稀疏文本中心化会造成内存爆炸,可使用 TruncatedSVD;把稠密 PCA 直接套在词袋上既昂贵又可能改变语义。
关键判断:先问“降维为了什么”,再选“要保留什么”。
七、常见误区与追问
-
误区:解释方差越高模型一定越好。 高方差方向未必与下游目标相关。
-
追问:如何选择方法? 先说明要保留方差、距离、邻域还是重构。
-
误区:二维图分开就证明存在真实簇。 可视化算法会重排距离并产生视觉团块。
-
追问:降维放在 CV 哪一步? 每个训练折内拟合,再变换对应验证折。
-
追问:如何验收? 同时报告结构、下游性能、稳定性和计算成本。
八、加强记忆
先问“降维为了什么”,再选“要保留什么”。PCA 看方差与重构,检索看邻域,展示看多种子稳定;任何用于建模的变换都必须放进交叉验证和线上 Pipeline。