常见的降维算法

作业:

自由作业:探索下什么时候用到降维?降维的主要应用?或者让ai给你出题,群里的同学互相学习下。可以考虑对比下在某些特定数据集上t-sne的可视化和pca可视化的区别。

一、什么时候用到降维?

降维通常用于以下几类情况:

1. 数据可视化

  • 高维数据(>3维)无法直接可视化,常用降维将数据映射到2D或3D平面进行展示。

  • 常用方法:PCA、t-SNE、UMAP。

2. 数据压缩 / 存储优化

  • 高维数据存储代价大,降维后可减少冗余特征,节省存储空间。

3. 降噪(Denoising)

  • 高维特征空间中可能存在大量噪声维度,降维有助于突出主要结构。

4. 加速模型训练 / 避免维数灾难

  • 在监督学习或聚类中,太多维度容易导致过拟合 或训练缓慢,降维可提升效率和模型泛化能力。

5. 特征冗余或共线性问题

  • 特征间高度相关时,降维可消除多重共线性,提高建模稳定性。

二、降维的主要方法与应用场景

方法 类型 原理简介 适用场景
PCA 线性、无监督 主成分投影,保留最大方差方向 高维数据压缩、线性结构数据可视化
t-SNE 非线性、无监督 保持局部结构的概率分布相似性 聚类结构可视化、非线性流形数据展示
UMAP 非线性、无监督 通过图拓扑保持局部和整体结构 替代t-SNE,用于可视化/特征工程
LDA 线性、有监督 最大化类间方差与类内方差比 分类问题的有监督降维
Autoencoder 非线性、有监督 利用神经网络编码压缩再解码还原数据 图像降噪、生成模型、特征提取

三、t-SNE vs PCA:可视化对比分析

1. 适用数据集

以MNIST(手写数字图像,784维)或Iris数据集(4维)为例,我们可以观察两者的区别。

2. 可视化效果(以MNIST为例)

PCA 可视化:
  • 优点:快速,线性变换,可解释性强。

  • 缺点:只能保留全局最大方差方向,聚类不明显,容易"混团"。

t-SNE 可视化:
  • 优点:保留局部结构,同类样本聚得更紧,异类分得更开。

  • 缺点:

    • 非线性变换,不能用于后续建模;

    • 随机性大(不同run结果可能不同);

    • 参数敏感,尤其是perplexity。

可视化示意图

方法 可视化效果简述
PCA 线性投影,点分布均匀,类聚不明显
t-SNE 同类样本成簇,聚类轮廓清晰

PCA

t-SNE

四、实践建议:如何选用降维方法?

场景 建议方法 理由
数据预处理 PCA 快速提取主成分,增强模型泛化性
可视化非线性聚类结构 t-SNE / UMAP 更好展示局部结构,直观展示聚类效果
图像/文本压缩或编码 Autoencoder 可自适应学习低维特征表达
有标签分类建模前特征压缩 LDA 结合类别信息降维,提高类别区分能力

@浙大疏锦行

相关推荐
xxwl585几秒前
第六章---计算几何
笔记·学习·算法
ss27310 分钟前
AI时代首先数据库-PostgreSQL实战笔记 | 12 PostgreSQL数据目录与重要文件结构
数据库·笔记·postgresql
Song_RsHt18 分钟前
Gateway (上):路由与转发,微服务的统一入口
java·笔记·后端·学习·gateway
把我格子衫拿来20 分钟前
误差预算怎么做?从雅可比到蒙特卡洛的三维定位不确定度分析
python·蒙特卡洛·三维定位·误差分析·不确定度
文章永久免费只为良心42 分钟前
Ctfshow_Web应用安全与防护_第二章_无字母数字命令执行
前端·python·安全·网络安全·渗透测试·ctf·红队渗透测试
2601_962885721 小时前
如何用 Python 获取上证指数、沪深300、中证500 等指数行情?
开发语言·python
骑士雄师1 小时前
《结构化思维》第五章 · 精读回顾(案例版 · 含结构图)
笔记
昔我往昔1 小时前
LangChain_RAG_学习小结
后端·python
Logic1011 小时前
C语言/数据结构二维数组题解:找出行列O个数均为偶数的格子——奇偶性预处理+二次遍历
c语言·数据结构·算法·二维数组·时间复杂度·动态内存分配·奇偶性
程序猿阿森1 小时前
【机器学习实战】朴素贝叶斯算法详解:从概率基础到商品评论情感分析
算法·机器学习·概率论