问题定义
降维是将高维数据映射到低维空间的过程,目的是减少数据维度,去除噪声,提高计算效率,同时保留数据的主要特征。核心问题包括:如何在降维过程中保留数据的重要信息、如何处理非线性数据、如何评估降维效果。
核心算法
线性降维
主成分分析 (PCA)
通过正交变换将数据转换到新的坐标系,使得第一主成分具有最大方差,后续主成分依次递减。适合线性数据,计算效率高。
1. 数据中心化:x_i = x_i - μ
2. 计算协方差矩阵:C = (1/n) X^T X
3. 对协方差矩阵进行特征值分解
4. 选择前 k 个最大特征值对应的特征向量
5. 投影数据:X_k = X * W_k
线性判别分析 (LDA)
监督降维方法,最大化类间方差与类内方差的比值,提高分类性能。适合分类任务。
其中 S_b 是类间散度矩阵,S_w 是类内散度矩阵
非线性降维
t-SNE (t-distributed Stochastic Neighbor Embedding)
基于概率分布的非线性降维方法,在低维空间中保持数据的局部结构,适合可视化高维数据。
UMAP (Uniform Manifold Approximation and Projection)
基于流形学习的降维方法,保留数据的局部和全局结构,计算速度比 t-SNE 快,适合大规模数据。
Isomap
基于测地线距离的降维方法,通过构建近邻图并计算最短路径来保持数据的几何结构。
Locally Linear Embedding (LLE)
假设数据在局部是线性的,通过保持局部线性关系来降维,适合处理流形数据。
开源实现
scikit-learn Decomposition
提供 PCA、LDA、t-SNE、Isomap、LLE 等降维算法实现。
UMAP
统一流形近似和投影,结合降维和聚类,适合高维数据可视化。
Point-E
OpenAI 开发的 3D 点云生成模型,使用降维技术处理点云数据。
FAISS
Facebook 开发的高效相似性搜索库,支持降维和索引。
应用场景
- 数据可视化:将高维数据映射到 2D 或 3D 空间,便于观察数据分布和模式
- 特征提取:从高维数据中提取最具代表性的特征,用于后续的机器学习任务
- 噪声去除:通过降维去除数据中的噪声和冗余信息
- 计算效率:减少数据维度,提高后续算法的计算速度和内存使用效率
- 图像处理:压缩图像数据,提取图像特征
- 文本分析:将高维文本向量降维,用于文本聚类和分类
评估指标
方差解释率
PCA 中前 k 个主成分解释的方差比例,衡量降维后保留的信息量。
重构误差
降维后再重构数据与原始数据的差异,衡量降维过程中的信息损失。
可视化质量
对于 t-SNE 和 UMAP 等可视化方法,通过人工观察评估降维结果的可读性和聚类效果。
下游任务性能
使用降维后的数据进行分类、聚类等任务,评估降维对下游任务的影响。
参数调优
PCA
选择合适的主成分数量 k,可以通过方差解释率或肘部法则确定。
t-SNE
调整 perplexity 参数(通常在 5-50 之间),学习率(通常在 10-1000 之间)。
UMAP
调整 n_neighbors(近邻数)、min_dist(最小距离)、n_components(降维后的维度)。
LDA
选择合适的维度 k(最多为类别数减 1)。
优缺点分析
PCA
优点:计算效率高,可解释性强,适合线性数据。
缺点:对非线性数据效果不佳,可能丢失局部结构。
t-SNE
优点:保持局部结构,可视化效果好。
缺点:计算时间长,对参数敏感,不适合大规模数据。
UMAP
优点:计算速度快,同时保持局部和全局结构,适合大规模数据。
缺点:参数调优复杂,结果可能不稳定。
LDA
优点:监督降维,提高分类性能。
缺点:需要类别标签,对异常值敏感。