前言
PCA主成分分析作为一种信号处理方法,被用于多种信号处理场景。博主主要聚焦于信号处理,第一次接触到PCA时,是想将他用于去噪,保留主要信号成分,去掉噪声信号。但是PCA的应用不止这么一点,其还可以用于图像压缩,加速机器学习算法(利用PCA进行降维,再进行训练),去除特征的相关性等,还有很多博主不知道的应用,毕竟学无止境^-^;在这里作为学习笔记进行整理,如果有学习更深入的大佬,可指点指点。
一、什么是 PCA ( Principal Component Analysis )
PCA 是一种线性降维方法。顾名思义,就是对高维信号进行降维。一般的高维信号包括那些?我所了解的有多通道传感器采集的信号(这里目前物理世界最常见的形式为n*m的二维矩阵,即多个数据采集通道在固定采样率下不同时间采样的信号);机器学习,深度学习中对目标进行训练时,提取的多维特征(这里就不只是矩阵了,可能会涉及到高维矩阵;通常指二维以上)。
更严格地说:
PCA 通过正交线性变换,把原始数据映射到一组新的、彼此正交的坐标轴上,使得:
- 在新坐标轴上第 1 个方向上的数据方差最大
- 第 2 个方向在与第 1 个正交的前提下方差最大
- 依此类推,有多个方向,且每个方向与其他方向都是正交的,其方差为该方向下的最大方差。
这些新坐标轴就叫做 主成分( Principal Components )。我个人在这里的理解就是,原始信号中存在这多个成分,在进行PCA之前,这些成分是相互混杂,不易分清。而当进行了PCA之后,就可以将这些成分信息两两正交的进行分离。而且分离后的信号在每个方向上的方差最大,也就是说,这是当前信号分离的极限,每个分离信号都保存了其最大可能的信息。
(用AI整理了一下我上面的描述思想为下:PCA通过正交变换,将线性混合的源成分分离为互不相关的主成分,并按方差(信息量)从大到小排列。每个主成分在与其前驱正交的约束下,捕获了剩余数据中的最大变异。这种变换达到了线性分离的"极限"------无法再用其他正交方向获得更多信息。)
因此,可以提炼出PCA 的三个核心关键词如下:
- 线性变换
- 正交(互相垂直)
- 最大方差
这里再冗余的说一下
PCA 想解决什么问题?
给定一个数据集:
- 特征维度高
- 特征之间相关
- 含有冗余或噪声
PCA 的目标是:
用更少的维度,尽可能保留数据中认为有用的主要信息(方差)
二、 PCA 在"做什么"(直观理解)
下图直观的展示了PCA对数据的处理过程,假设你有二维数据点如左图,虽然是二维数据,但数据几乎沿着一条斜线分布;中间图为变换过程;右图为变换后,PCA变换找到了两个新坐标系。

👉 PCA 会:
- 旋转坐标系
- 找到数据"延展最长"的方向
- 用这个方向作为新的坐标轴
这样:
- 原来的二维数据
- 可以用 1 个新坐标轴近似表示
三、进行 PCA 需要哪些步骤(总流程)
步骤一:数据准备与中心化:
假设数据数据为一个二维矩阵
其中,为列向量,每个向量的样本数为n,即上述的矩阵为一个
的二维矩阵。中心化的意思就是对每一个列向量求均值,共有p个均值,每一列减去其相应列的均值。
步骤二:构造协方差矩阵
将中心化后的数据记为,则协方差矩阵定义为
其中,C 是一个的实对称矩阵。
协方差矩阵的含义:
- 对角元素:每个特征的方差(也即特征自己与自己的相关性)
- 非对角元素:不同特征之间的相关性
步骤三:对协方差矩阵做特征值分解
这是PCA的核心步骤:
对协方差矩阵C求解:
可以得到
- 特征值
- 特征向量
并满足
其中
步骤四:排序并选择主成分
将特征值从大到小排序:
注意:特征向量也要跟着同时排序;
数学意义:
- 特征向量 = 新的正交方向
- 特征值 = 数据在该方向上的方差
因此:
方差最大的方向(第一主成分)
方差第二大方向(第二主成分)
以此类推...
步骤五:降维(投影)
选取前个主成分:
将数据投影到新空间:
其中,Z的维度为,即降维后的数据。
步骤六:数据重构
若需要从低维恢复到原空间:
其中是原来各向量的均值(实对称矩阵,
)。
四、PCA 的核心结论(必须记住)
- PCA 是 正交线性变换
- 新坐标轴来自 协方差矩阵的特征向量
- 特征值表示 方差大小
- 保留最大特征值对应的方向 = 保留最多信息
- PCA 本质是 旋转 + 截断
(写的略有粗糙,还是请各位大佬多多指教!!!)