首页 > 其他分享 >PCA 原理推导

PCA 原理推导

时间:2024-11-16 11:16:37浏览次数:3  
标签:推导 18 top a1 cdots tag 原理 PCA Sigma

针对高维数据的降维问题,PCA 的基本思路如下:首先将需要降维的数据的各个变量标准化(规范化)为均值为 0,方差为 1 的数据集,然后对标准化后的数据进行正交变换,将原来的数据转换为若干个线性无关向量表示的新数据:这些新向量表示的数据不仅要求相互线性无关,而且需要所包含的信息量最大。PCA 的一个示例如图 18-1 所示。
图 18-1 PCA 示例
  图 18-1 中,左图是一组由变量 x 1 x_1 x1​ 和 x 2 x_2 x2​ 表示的二维空间,数据分布于图中椭圆形区域内,能够看到,变量 x 1 x_1 x1​ 和 x 2 x_2 x2​ 存在一定的相关关系;右图是对数据进行正交变换后的数据坐标系中,向变量 y 1 y_1 y1​ 和 y 2 y_2 y2​ 表示。为了使得变换后的信息量最大,PCA 使用方差最大的方向作为新坐标系的第一坐标轴 y 1 y_1 y1​,方差第二大的作为第二坐标轴 y 2 y_2 y2​。

PCA 使用方差衡量新变量的信息量大小,按照方差大小排序依次为第一主成分、第二主成分、⋯⋯,下面对 PCA 原理进行简单推导。

假设原始数据为 m 维随机变量 x = ( x 1 , x 2 , ⋯   , x m ) ⊤ x = (x_1, x_2, \cdots, x_m)^\top x=(x1​,x2​,⋯,xm​)⊤,其均值向量 μ = E ( x ) = ( μ 1 , μ 2 , ⋯   , μ m ) ⊤ \mu = E(x) = (\mu_1, \mu_2, \cdots, \mu_m)^\top μ=E(x)=(μ1​,μ2​,⋯,μm​)⊤,协方差矩阵为:

Σ = cov ⁡ ( x , x ) = E [ ( x − μ ) ( x − μ ) ⊤ ] (18-1) \Sigma = \operatorname{cov}(x, x) = E \left[ (x - \mu)(x - \mu)^\top \right] \tag{18-1} Σ=cov(x,x)=E[(x−μ)(x−μ)⊤](18-1)

由 m 维随机变量 x x x 到 m 维随机变量 y = ( y 1 , y 2 , ⋯   , y m ) ⊤ y = (y_1, y_2, \cdots, y_m)^\top y=(y1​,y2​,⋯,ym​)⊤ 的线性变换:

y i = a i ⊤ x = a i 1 x 1 + a i 2 x 2 + ⋯ + a i m x m (18-2) y_i = a_i^\top x = a_{i1} x_1 + a_{i2} x_2 + \cdots + a_{im} x_m \tag{18-2} yi​=ai⊤​x=ai1​x1​+ai2​x2​+⋯+aim​xm​(18-2)

其中 a i ⊤ = ( a i 1 , a i 2 , ⋯   , a i m ) a_i^\top = (a_{i1}, a_{i2}, \cdots, a_{im}) ai⊤​=(ai1​,ai2​,⋯,aim​)。

经线性变换后的随机变量 y i y_i yi​ 的均值、方差和协方差统计量可以表示为:

E ( y i ) = a i ⊤ μ , i = 1 , 2 , ⋯   , m (18-3) E(y_i) = a_i^\top \mu, \quad i = 1, 2, \cdots, m \tag{18-3} E(yi​)=ai⊤​μ,i=1,2,⋯,m(18-3)

var ⁡ ( y i ) = a i ⊤ Σ a i , i = 1 , 2 , ⋯   , m (18-4) \operatorname{var}(y_i) = a_i^\top \Sigma a_i, \quad i = 1, 2, \cdots, m \tag{18-4} var(yi​)=ai⊤​Σai​,i=1,2,⋯,m(18-4)

cov ⁡ ( y i , y j ) = a i ⊤ Σ a j , i , j = 1 , 2 , ⋯   , m (18-5) \operatorname{cov}(y_i, y_j) = a_i^\top \Sigma a_j, \quad i, j = 1, 2, \cdots, m \tag{18-5} cov(yi​,yj​)=ai⊤​Σaj​,i,j=1,2,⋯,m(18-5)

当随机变量 x x x 到随机变量 y y y 的线性变换满足如下条件时,变换后的 y 1 , y 2 , ⋯   , y m y_1, y_2, \cdots, y_m y1​,y2​,⋯,ym​ 分别为随机变量 x x x 的第一主成分、第二主成分、⋯⋯、第 m 主成分。

  1. 线性变换的系数向量 a i a_i ai​ 为单位向量,有 a i ⊤ a i = 1 ,   i = 1 , 2 , ⋯   , m a_i^\top a_i = 1, \ i = 1, 2, \cdots, m ai⊤​ai​=1, i=1,2,⋯,m。
  2. 线性变换后的变量 y i y_i yi​ 与 y j y_j yj​ 线性无关,即 cov ⁡ ( y i , y j ) = 0 ( i ≠ j ) \operatorname{cov}(y_i, y_j) = 0(i \neq j) cov(yi​,yj​)=0(i=j)。
  3. 变量 y i y_i yi​ 是随机变量 x x x 所有线性变换中方差最大的, y 2 y_2 y2​ 是与 y 1 y_1 y1​ 无关的所有线性变换中方差最大的。

上述三个条件给出了求解主成分的基本方法。根据优化目标和约束条件,我们可以使用拉格朗日乘子法来求解主成分。下面以第一主成分为例进行求解推导。第一主成分的优化问题的数学表达为:

max ⁡ a 1 ⊤ Σ a 1 (18-6) \max \quad a_1^\top \Sigma a_1 \tag{18-6} maxa1⊤​Σa1​(18-6)

s . t . a 1 ⊤ a 1 = 1 (18-7) s.t. \quad a_1^\top a_1 = 1 \tag{18-7} s.t.a1⊤​a1​=1(18-7)

定义拉格朗日目标函数如下:

L = a 1 ⊤ Σ a 1 − λ ( a 1 ⊤ a 1 − 1 ) (18-8) L = a_1^\top \Sigma a_1 - \lambda (a_1^\top a_1 - 1) \tag{18-8} L=a1⊤​Σa1​−λ(a1⊤​a1​−1)(18-8)

将式 (18-8) 的拉格朗日函数对 a 1 a_1 a1​ 求导并令其为 0,有:

∂ L ∂ a 1 = Σ a 1 − λ a 1 = 0 (18-9) \frac{\partial L}{\partial a_1} = \Sigma a_1 - \lambda a_1 = 0 \tag{18-9} ∂a1​∂L​=Σa1​−λa1​=0(18-9)

根据矩阵特征值与特征向量的关系,由式 (18-9) 可知 λ \lambda λ 为 Σ \Sigma Σ 的特征值, a 1 a_1 a1​ 为对应的单位特征向量。假设 a 1 a_1 a1​ 是 Σ \Sigma Σ 的最大特征值 λ 1 \lambda_1 λ1​ 对应的单位特征向量,那么 a 1 a_1 a1​ 和 λ 1 \lambda_1 λ1​ 均为上述优化问题的最优解。所以 a 1 T x a_1^Tx a1T​x 为第一主成分,其方差为对应协方差矩阵的最大特征值:

var ⁡ ( a 1 ⊤ x ) = a 1 ⊤ Σ a 1 = λ 1 (18-10) \operatorname{var}(a_1^\top x) = a_1^\top \Sigma a_1 = \lambda_1 \tag{18-10} var(a1⊤​x)=a1⊤​Σa1​=λ1​(18-10)

这样,第一主成分的推导就完成了。同样的方法可用来求解第 k 主成分,第 k 主成分的方差的特征值为:

var ⁡ ( a k ⊤ x ) = a k ⊤ Σ a k = λ k , k = 1 , 2 , ⋯   , m (18-11) \operatorname{var}(a_k^\top x) = a_k^\top \Sigma a_k = \lambda_k, \quad k = 1, 2, \cdots, m \tag{18-11} var(ak⊤​x)=ak⊤​Σak​=λk​,k=1,2,⋯,m(18-11)

最后,梳理一下 PCA 的计算流程:

  1. 对 m 行 n 列的数据 X 先按照均值为 0,方差为 1 进行标准化处理;
  2. 计算标准化后的 X 的协方差矩阵 C = 1 n X X ⊤ C = \frac{1}{n} XX^\top C=n1​XX⊤;
  3. 计算协方差矩阵 C C C 的特征值和对应的特征向量;
  4. 将特征向量按照对应的特征值大小排序组成矩阵,取前 k 行构成的矩阵 P P P;
  5. 计算 Y = P X Y = PX Y=PX 即可得到经过 PCA 降维后的 k 维数据。

标签:推导,18,top,a1,cdots,tag,原理,PCA,Sigma
From: https://blog.csdn.net/u013172930/article/details/143808167

相关文章

  • 解析 React Scheduler 原理,Solid 竟也在使用!
    对于ReactScheduler,它通过将任务切片并异步执行,避免了阻塞浏览器的主线程。很多人其实都看到过类似的文章了,甚至说去手写调度器,都写的很不错,所以本文将从一个新的角度探讨ReactScheduler,揭示它是如何利用几个简单的API实现这一壮举的。ReactScheduler解析首先,让......
  • 大数据-226 离线数仓 - Flume 优化配置 自定义拦截器 拦截原理 了 拦截器实现 Java
    点一下关注吧!!!非常感谢!!持续更新!!!Java篇开始了!目前开始更新MyBatis,一起深入浅出!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已更完)Kudu(......
  • 计算机组成原理之总线事务和定时
    总线事务总线是计算机内部各组件间交换信息的公共通道。总线事务通常指的是在总线上进行的一次完整的信息传输过程,这个过程大致可以分为以下几个阶段:请求总线:需要使用总线的组件(主设备)向总线仲裁机构提出申请。总线仲裁:总线仲裁机构决定下一传输周期的总线使用权授予哪个......
  • 人工智能:原理与技术 学习笔记
    Lecture2Supervisedlearning:regression,classification,...Unsupervisedlearning:clustering,dimensionalityreduction,...Thecanonicalmachinelearningproblem:Givenasetoftrainingdata\(\{(x_i,y_i)\}_{i=1}^m\)andalossfunction\......
  • elastic search 原理介绍
    Elasticsearch原理与实现文档字段1字段索引默认情况下,只有text类型的字段会保存文档ID、词频、词序以外,其余类型字段均只保存文档ID。用户可以在映射字段时通过index_option参数来设置,它的可选值为docs、freqs、positions、offsets,编入索引l的信息依次增加,具体含义如下:do......
  • 【028】基于51单片机PM2.5检测报警器【Proteus仿真+Keil程序+报告+原理图】
    ☆、设计硬件组成:51单片机最小系统+GP2Y1010AU0F粉尘传感器+ADC0832模数转换芯片+LCD1602液晶显示+按键设置+蜂鸣器+LED灯。1、本设计采用STC89C51/52、AT89C51/52、AT89S51/52单片机作为主控芯片,LCD1602实时显示信息;2、系统采用ADC0832模数转换芯片将PM2.5传感器数据读......
  • STM32一种计算CPU使用率的方法及其实现原理
    本文将以STM32F429+FreeRTOS+KEIL为测试环境,看下MCU的使用率1、计算STM32使用率的官方方法在其CubeMX的固件库中2、加入自己的工程2.1、文件cpu_utils.c有描述使用的步骤2.2、实操一遍第一步:将上图中的cpu_utils.c文件添加到工程中,并将其头文件路径加......
  • 一文掌握:java编译器:跑通helloworld并了解核心原理
    本文旨在详细介绍Java编译器的工作原理及其在Windows系统下的具体使用方法,包括安装步骤、常用命令介绍以及大致原理。通过本文,你可以全面掌握从编写代码到生成可执行文件的全过程,为Java开发奠定坚实的基础。Windows下Java环境的搭建与程序编译为了在Windows环境下运行Jav......
  • 双向证书校验 和单向证书校验分别是什么原理
    1.单向证书校验(One-WayAuthentication)单向证书校验是指在客户端与服务器之间的通信中,只有服务器需要提供证书,客户端通过验证服务器的证书来确认服务器的身份。原理:客户端发起连接请求(如通过HTTPS)。服务器将其数字证书发送给客户端,数字证书中包含了服务器的公钥和其......
  • React Router 的实现原理
     本文分两部分,一说前端路由的基本原理,二说ReactRouter的实现原理前端路由的基本原理​不说屁话,从时间线上讲,Web应用原本是后端渲染,后来随着技术的发展,有了单页面应用,慢慢从后端渲染发展成前端渲染在博客前端路由hash、history的实现 一问中我已经介绍过这两种模式h......