📚 算法原理
PCA 的核心思想:
主成分分析(Principal Component Analysis, PCA)是一种线性降维技术,通过寻找数据中方差最大的方向(主成分)来降低数据的维度,同时尽可能保留原始数据的信息。
数学原理:
- 数据标准化:将数据标准化为均值为0、标准差为1
- 计算协方差矩阵:$$C = \frac{1}{n-1}X^T X$$
- 特征值分解:$$C = P \Lambda P^T$$,其中 $P$ 是特征向量矩阵,$\Lambda$ 是对角特征值矩阵
- 选择主成分:按特征值从大到小排序,选择前 $k$ 个主成分
- 降维变换:$$Y = X P_k$$,其中 $P_k$ 是前 $k$ 个特征向量组成的矩阵
- 重构数据:$$\hat{X} = Y P_k^T$$
🎯 PCA 的用途
- 数据降维:将高维数据投影到低维空间,减少存储和计算成本
- 特征提取:从原始特征中提取最重要的特征,去除冗余信息
- 数据可视化:将高维数据降到2D或3D,便于可视化分析
- 噪声去除:通过保留主要成分,可以去除数据中的噪声
- 数据压缩:在保留大部分信息的前提下,大幅减少数据量
- 预处理:作为其他机器学习算法的预处理步骤,提高模型性能
⚙️ 参数控制
100
1
5
📈 统计信息
第一主成分方差解释率
0%
累计方差解释率
0%
重构误差 (MSE)
0.000
数据压缩比
0%
📊 可视化展示
原始数据与主成分方向
降维后的数据(1D投影)
重构后的数据
就绪
🎬 三维 PCA 动画演示(Manim)
说明:下面的动画使用 Manim 创建,展示了三维数据点在 PCA 转换前后的完整过程。
如果视频未显示,请先运行 manim -pql ml/pca-manim-demo.py PCADemo3D 生成动画视频。
完整 PCA 转换过程
详细转换步骤
📖 如何生成动画:
- 安装 Manim:
pip install manim - 快速预览(低质量):
manim -pql ml/pca-manim-demo.py PCADemo3D - 中等质量:
manim -pqm ml/pca-manim-demo.py PCADemo3D - 高质量(最终版本):
manim -pqh ml/pca-manim-demo.py PCADemo3D - 生成的视频将保存在
media/videos/pca-manim-demo/目录下
详细说明:请查看 pca-manim-README.md 文件。