常见的降维算法
作业:
自由作业:探索下什么时候用到降维?降维的主要应用?或者让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 | 结合类别信息降维,提高类别区分能力 |
@浙大疏锦行