PCA主成分分析学习

前言

PCA主成分分析作为一种信号处理方法,被用于多种信号处理场景。博主主要聚焦于信号处理,第一次接触到PCA时,是想将他用于去噪,保留主要信号成分,去掉噪声信号。但是PCA的应用不止这么一点,其还可以用于图像压缩,加速机器学习算法(利用PCA进行降维,再进行训练),去除特征的相关性等,还有很多博主不知道的应用,毕竟学无止境^-^;在这里作为学习笔记进行整理,如果有学习更深入的大佬,可指点指点。

一、什么是 PCA Principal Component Analysis

PCA 是一种线性降维方法。顾名思义,就是对高维信号进行降维。一般的高维信号包括那些?我所了解的有多通道传感器采集的信号(这里目前物理世界最常见的形式为n*m的二维矩阵,即多个数据采集通道在固定采样率下不同时间采样的信号);机器学习,深度学习中对目标进行训练时,提取的多维特征(这里就不只是矩阵了,可能会涉及到高维矩阵;通常指二维以上)。

更严格地说:

PCA 通过正交线性变换,把原始数据映射到一组新的、彼此正交的坐标轴上,使得:

  • 在新坐标轴上第 1 个方向上的数据方差最大
  • 第 2 个方向在与第 1 个正交的前提下方差最大
  • 依此类推,有多个方向,且每个方向与其他方向都是正交的,其方差为该方向下的最大方差。

这些新坐标轴就叫做 主成分( Principal Components 。我个人在这里的理解就是,原始信号中存在这多个成分,在进行PCA之前,这些成分是相互混杂,不易分清。而当进行了PCA之后,就可以将这些成分信息两两正交的进行分离。而且分离后的信号在每个方向上的方差最大,也就是说,这是当前信号分离的极限,每个分离信号都保存了其最大可能的信息。

(用AI整理了一下我上面的描述思想为下:PCA通过正交变换,将线性混合的源成分分离为互不相关的主成分,并按方差(信息量)从大到小排列。每个主成分在与其前驱正交的约束下,捕获了剩余数据中的最大变异。这种变换达到了线性分离的"极限"------无法再用其他正交方向获得更多信息。

因此,可以提炼出PCA 的三个核心关键词如下:

  1. 线性变换
  2. 正交(互相垂直)
  3. 最大方差

这里再冗余的说一下

PCA 想解决什么问题?

给定一个数据集:

  • 特征维度高
  • 特征之间相关
  • 含有冗余或噪声

PCA 的目标是:

用更少的维度,尽可能保留数据中认为有用的主要信息(方差)


二、 PCA 在"做什么"(直观理解)

下图直观的展示了PCA对数据的处理过程,假设你有二维数据点如左图,虽然是二维数据,但数据几乎沿着一条斜线分布;中间图为变换过程;右图为变换后,PCA变换找到了两个新坐标系。

👉 PCA 会:

  • 旋转坐标系
  • 找到数据"延展最长"的方向
  • 用这个方向作为新的坐标轴

这样:

  • 原来的二维数据
  • 可以用 1 个新坐标轴近似表示

三、进行 PCA 需要哪些步骤(总流程)

步骤一:数据准备与中心化:

假设数据数据为一个二维矩阵

其中,为列向量,每个向量的样本数为n,即上述的矩阵为一个的二维矩阵。中心化的意思就是对每一个列向量求均值,共有p个均值,每一列减去其相应列的均值。

步骤二:构造协方差矩阵

将中心化后的数据记为,则协方差矩阵定义为

其中,C 是一个的实对称矩阵。

协方差矩阵的含义:

  • 对角元素:每个特征的方差(也即特征自己与自己的相关性)
  • 非对角元素:不同特征之间的相关性

步骤三:对协方差矩阵做特征值分解

这是PCA的核心步骤:

对协方差矩阵C求解:

可以得到

  • 特征值
  • 特征向量

并满足

其中

步骤四:排序并选择主成分

将特征值从大到小排序:

注意:特征向量也要跟着同时排序;

数学意义:

  • 特征向量 = 新的正交方向
  • 特征值 = 数据在该方向上的方差

因此:

方差最大的方向(第一主成分)

方差第二大方向(第二主成分)

以此类推...

步骤五:降维(投影)

选取前个主成分:

将数据投影到新空间:

其中,Z的维度为,即降维后的数据。

步骤六:数据重构

若需要从低维恢复到原空间:

其中是原来各向量的均值(实对称矩阵,)。

四、PCA 的核心结论(必须记住)

  1. PCA 是 正交线性变换
  2. 新坐标轴来自 协方差矩阵的特征向量
  3. 特征值表示 方差大小
  4. 保留最大特征值对应的方向 = 保留最多信息
  5. PCA 本质是 旋转 + 截断

(写的略有粗糙,还是请各位大佬多多指教!!!)

相关推荐
专注VB编程开发20年2 小时前
CUDA实现随机切割算法,显卡多线程计算
算法·cuda
2301_788770552 小时前
OJ模拟4
算法
浮白载笔的夜晚2 小时前
【科普向】模拟电路(Analog Circuits)与射频电路(RF Circuits)的区别
学习
Yilena2 小时前
带你轻松学习LangChain4j
java·学习·langchain
NAGNIP3 小时前
一文搞懂CNN经典架构-AlexNet!
人工智能·算法
是翔仔呐3 小时前
第13章 SPI通信协议全解:底层时序、4种工作模式与W25Qxx Flash芯片读写实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
2401_878530213 小时前
自定义内存布局控制
开发语言·c++·算法
专注VB编程开发20年3 小时前
PNG、GIF透明游戏角色人物输出一张图片技巧,宽度高度读取
算法
CoderCodingNo3 小时前
【CSP】CSP-J 2025真题 | 异或和 luogu-P14359 (相当于GESP六级水平)
算法