机器学习进阶文档深度页
PCA 主成分分析
寻找互相正交、依次最大化投影方差的线性方向,用更少维度保留主要变化。
学习前需要掌握
标量、向量与矩阵方差内容待补充
背景与问题
高维可视化、压缩与去冗余常用,但方差大不保证对预测有用,主成分解释可能困难。
概念定义
PCA 学习训练均值、主成分方向和解释方差;transform 把样本投影到这些方向。
直观理解
旋转坐标轴,让第一根轴沿数据云最伸展的方向。
核心原理
特征尺度不同通常先标准化;PCA 必须位于 CV Pipeline 内。降维维数通过解释方差和下游验证选择。
数学表达
核心表达
特征尺度不同通常先标准化;PCA 必须位于 CV Pipeline 内。降维维数通过解释方差和下游验证选择。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1只在训练数据拟合缩放
- 2中心化/标准化
- 3求主方向
- 4选择成分数
代码对应位置
示例 1PCA 主成分分析 实现:对应文档中的训练与预测逻辑。
计算与实现步骤
- 1
只在训练数据拟合缩放
- 2
中心化/标准化
- 3
求主方向
- 4
选择成分数
- 5
投影验证测试
- 6
评估信息与下游表现
代码实现
示例 1
PCA 主成分分析 实现
PCA 主成分分析 实现
scikit-learn
example_01.py用途:对应文档中的训练与预测逻辑。
from sklearn.decomposition import PCA
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
model=make_pipeline(StandardScaler(),PCA(n_components=2))
X2=model.fit_transform(X)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
对应文档中的训练与预测逻辑。
X- 完整特征矩阵,每行一个样本、每列一个特征。
model- 组合预处理和估计器的模型对象。
Step 1 · 1–5 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
from sklearn.decomposition import PCA
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
model=make_pipeline(StandardScaler(),PCA(n_components=2))
X2=model.fit_transform(X)代码与数学原理
减去训练均值并除以训练标准差,对应代码中的 mean/std 或 StandardScaler。
预期输出或运行结果
X2 形状为 (样本数,2)。
常见错误 · 4 条
- 不要在测试集上调用 fit 或 fit_transform;测试集只能复用训练参数。
- 不标准化
- 把主成分当原始特征
- 完整数据先 PCA
实际应用
- 二维可视化
- 压缩与去相关
常见错误
不标准化
把主成分当原始特征
完整数据先 PCA
文档来源
06|无监督学习原始文档
学习资料/learning_tech/06_unsupervised_learning.md- §7 PCA 主成分分析