PCA 原理推导

针对高维数据的降维问题,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=aix=ai1x1+ai2x2++aimxm(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 aiai=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.a1a1=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λ(a1a11)(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} a1L=Σ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 a1Tx 为第一主成分,其方差为对应协方差矩阵的最大特征值:

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(a1x)=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(akx)=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=n1XX
  3. 计算协方差矩阵 C C C 的特征值和对应的特征向量;
  4. 将特征向量按照对应的特征值大小排序组成矩阵,取前 k 行构成的矩阵 P P P
  5. 计算 Y = P X Y = PX Y=PX 即可得到经过 PCA 降维后的 k 维数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472059.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Selective attention improves transformer详细解读

Selective attention improves transformer Google 2024.10.3 一句话:简单且无需额外参数的选择性注意力机制,通过选择性忽略不相关信息并进行上下文剪枝,在不增加计算复杂度的情况下显著提升了Transformer模型的语言建模性能和推理效率。 论…

卡尔曼滤波:从理论到应用的简介

卡尔曼滤波(Kalman Filter)是一种递归算法,用于对一系列噪声观测数据进行动态系统状态估计。它广泛应用于导航、控制系统、信号处理、金融预测等多个领域。本文将介绍卡尔曼滤波的基本原理、核心公式和应用案例。 1. 什么是卡尔曼滤波&#x…

tdengine学习笔记

官方文档:用 Docker 快速体验 TDengine | TDengine 文档 | 涛思数据 整体架构 TDENGINE是分布式,高可靠,支持水平扩展的架构设计 TDengine分布式架构的逻辑结构图如下 一个完整的 TDengine 系统是运行在一到多个物理节点上的,包含…

ROS进阶:使用URDF和Xacro构建差速轮式机器人模型

前言 本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。 差速轮式机器人:两轮差速底盘由两个动力轮位于底盘左…

VPI photonics的一些使用经验(测相位 快速搜索)持续更新

1.使用FuncSinEl模块的注意事项: 2.在VPI player(示波器)测电信号相位时候,可以使用正则表达式,快速搜索。 比如我要搜索以30开头的数据,输入: ^30 其他的正则表达式不适用,比如以…

前端知识点---this的用法 , this动态绑定(Javascript)

文章目录 this动态绑定 , this的用法01. 全局作用域下的 this02. 函数中的 this2.1 普通函数调用2.2 构造函数调用2.3 箭头函数中的 this 03对象方法调用04. 事件处理中的 this05. 动态绑定的方式5.1 call 方法5.2 apply 方法5.3 bind 方法 06类中的 this07. 总结 this动态绑定…

【MySQL 保姆级教学】详细讲解视图--(15)

视图 1. 为什么要有视图?2.视图的定义和特点3. 创建视图4. 视图的使用举例4.1 创建表并插入数据4.2 举例 5. 视图和基表之间有什么联系呢? 1. 为什么要有视图? 当我们频繁地使用用多表查询和复合查询出的结果时,就需要频繁的使用…

聊聊Flink:Flink的分区机制

一、前言 flink任务在执行过程中,一个流(stream)包含一个或多个分区(Stream partition)。TaskManager中的一个slot的subtask就是一个stream partition(流分区),一个Job的流&#xf…

探索SAP财务管理软件:重塑企业财务管理新境界

在当今瞬息万变的商业环境中,企业对于财务管理的精准性、高效性和透明度要求日益增高。作为全球领先的企业管理软件解决方案提供商,SAP凭借其强大的财务管理软件,正引领着全球企业迈向财务管理的新纪元。 SAP 财务管理系统通过智能化技术&am…

数字孪生乡村:数字乡村智慧化营建思路

数字化技术已然成为全球理论和产业界关注的热点命题 ,并广泛应用于城市规划、交通管理、工业、医疗、教育等领域,已经成为文化遗产保护领域最主要方式 ,如数字非遗、数字文物、数字文旅等。 传统村落的数字化保护呈现由单一技术向多技术集成…

《FreeRTOS任务基础知识以及任务创建相关函数》

目录 1.FreeRTOS多任务系统与传统单片机单任务系统的区别 2.FreeRTOS中的任务(Task)介绍 2.1 任务特性 2.2 FreeRTOS中的任务状态 2.3 FreeRTOS中的任务优先级 2.4 在任务函数中退出 2.5 任务控制块和任务堆栈 2.5.1 任务控制块 2.5.2 任务堆栈…

SpringCloud基础 入门级 学习SpringCloud 超详细(简单通俗易懂)

Spring Cloud 基础入门级学习 超详细(简单通俗易懂) 一、SpringCloud核心组件第一代:SpringCloud Netflix组件第二代:SpringCloud Alibaba组件SpringCloud原生组件 二、SpringCloud体系架构图三、理解分布式与集群分布式集群 四、…

Photoshop(PS)——人像磨皮

1.新建一个文件,背景为白色,将图片素材放入文件中 2.利用CtrlJ 复制两个图层出来,选择第一个拷贝图层,选择滤镜---杂色---蒙尘与划痕 3.调整一下数值,大概能够模糊痘印痘坑,点击确定。 4.然后选择拷贝2图层…

core 文件

sysctl -a | grep core_pattern 查看core 的路径 linux下寻找段错误的方法 - 空水 - 博客园 /var/log/messages dmesg -T 一、dmesg命令 dmesg命令,用于获取程序出错时的堆栈地址,用grep过滤出发生崩溃的程序,以及对应的堆栈信息 [Thu Nov …

centos rich 美观打印日志

文章目录 步骤 1: 安装 Python 和 pip步骤 2: 安装 rich-cli步骤 3: 验证安装步骤 4: 使用 rich-cli参考 在 CentOS 上安装 rich-cli 工具,你可以按照以下步骤进行操作。rich-cli 是一个命令行工具,用于将 rich 库的功能(例如美化输出&#x…

《动手学深度学习》中d2l库的安装以及问题解决

当我们在按照《动手学深度学习》这本书或者网课学习时会有需要导入d2l库的使用。​d2I是一个与《动手学深度学习》(Dive into Deep Learning)一书配套的开源教学库,它包含了作者李沐设计的深度学习相关代码和示例。这个库旨在帮助读者通过实践经验来理解…

【大模型实战篇】vLLM的由来以及大模型部署、推理加速实践

1. 问题背景分析及vLLM的由来 大模型毫无疑问,在工作、生活中已经逐渐扮演越来越重要的角色。但大模型的尺寸一般都比较大,处理一个大模型请求的成本可能比传统关键字查询高出 10 倍。推理的成本代价较高,因此提高大模型服务系统的吞吐量&…

常用在汽车PKE无钥匙进入系统的高度集成SOC芯片:CSM2433

CSM2433是一款集成2.4GHz频段发射器、125KHz接收器和8位RISC(精简指令集)MCU的SOC芯片,用在汽车PKE无钥匙进入系统里。 什么是汽车PKE无钥匙进入系统? 无钥匙进入系统具有无钥匙进入并且启动的功能,英文名称是PKE&…

路由器基本原理与配置

一 , 路由是什么? 从源主机到目标主机的转发过程; 二 , 路由器 (1)路由器的工作原理 路由器是一种三层设备,是使用IP地址寻址,实现从源IP到达目标IP地址的端到端的服务&#xff0c…

NPOI 实现Excel模板导出

记录一下使用NPOI实现定制的Excel导出模板&#xff0c;已下实现需求及主要逻辑 所需Json数据 对应参数 List<PurQuoteExportDataCrInput> listData [{"ItemName": "电缆VV3*162*10","Spec": "电缆VV3*162*10","Uom":…