PCA 原理推导

news2024/11/16 9:23:31

针对高维数据的降维问题,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.coloradmin.cn/o/2241409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Ubuntu 24.04 LTS上安装飞桨PaddleX

前面我们介绍了《在Windows用远程桌面访问Ubuntu 24.04.1 LTS》本文接着介绍安装飞桨PaddleX。 PaddleX 3.0 是基于飞桨框架构建的一站式全流程开发工具,它集成了众多开箱即用的预训练模型,可以实现模型从训练到推理的全流程开发,支持国内外多…

Web_前端_HTML入门学习的案例案例1

HTML入门学习的案例 来源: HTML入门学习的案例_给学生讲html内容案例-CSDN博客 案例1&#xff1a;hello.html <html><body><title>html技术</title></body><body>hello</body> </html>&#xff08;但是有乱码&#xff09; …

【C#】C#编程入门指南:构建你的.NET开发基础

文章目录 前言&#xff1a;1. C# 开发环境 VS的基本熟悉2. 解决方案与项目的关系3. 编辑、编译、链接、运行4. 托管代码和CLR4.1 CLR&#xff1a;4.2 C# 代码第编译过程&#xff08;两次编译的&#xff09; 5. 命名空间6. 类的组成与分析7. C# 的数据类型7.1 值类型7.2 引用类型…

115页PDF | 埃森哲_XX集团信息化能力成熟度评估及能力提升方案(限免下载)

一、前言 这份报告是埃森哲_XX集团信息化能力成熟度评估及能力提升方案&#xff0c;报告首先分析了集团的战略规划&#xff0c;包括调整优化期、转型升级期和跨越发展期的目标&#xff0c;然后识别了集团面临的内部挑战和外部压力&#xff0c;如管控体系不完善、业务板块多样化…

面试时问到软件开发原则,我emo了

今天去一个小公司面试&#xff0c;面试官是公司的软件总监&#xff0c;眼镜老花到看笔记本电脑困难&#xff0c;用win7的IE打开leetcode网页半天打不开&#xff0c;公司的wifi连接不上&#xff0c;用自己手机热点&#xff0c;却在笔记本电脑上找不到。还是我用自己的手机做热点…

Wi-Fi背后的工作原理与技术发展历程介绍【无线通信小百科】

1个视频说清楚WIFI&#xff1a;频段/历程/技术参数/常用模块 智能手机拥有率越来越高的今天&#xff0c;大家已经习惯了通过无线网络上网的方式。除了在外面需要用手机流量&#xff0c;我们通常在家里或者机场&#xff0c;商场都可以通过Wi-Fi连接上网。本期文章将为大家介绍Wi…

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

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

Python中的HTTP协议

文章目录 一. 网址URL二. HTTP协议1. HTTP协议的概念2. HTTP协议的作用3. HTTP请求报文与响应报文① HTTP请求报文Ⅰ. GET请求报文格式Ⅱ. GET请求报文分析Ⅲ. POST请求报文格式Ⅳ. POST请求报文分析Ⅴ. GET与POST请求报文总结 ② HTTP响应报文Ⅰ. HTTP响应报文格式Ⅱ. HTTP响应…

108. UE5 GAS RPG 实现地图名称更新和加载关卡

在这一篇里&#xff0c;我们将实现对存档的删除功能&#xff0c;在删除时会有弹框确认。接着实现获取玩家的等级和地图名称和存档位置&#xff0c;我们可以通过存档进入游戏&#xff0c;玩家在游戏中可以在存档点存储存档。 实现删除存档 删除存档需要一个弹框确认&#xff0…

DNS批量解析管理软件有什么用

在复杂的网络环境中&#xff0c;DNS批量解析管理软件犹如一把功能强大的钥匙&#xff0c;开启了高效网络管理的大门&#xff0c;为网络运营和维护带来了诸多便利。 1、对于网络服务提供商而言&#xff0c;DNS批量解析管理软件极大地提高了工作效率 传统的DNS解析管理方式在处…

IoT [remote electricity meter]

IoT [remote electricity meter] 物联网&#xff0c;远程抄表&#xff0c;电表数据&#xff0c;举个例子

sql数据库-排序查询-DQL

目录 语法 排序方式 举例 将表按年龄从小到大排序 将表按年龄从大到小排序 ​编辑 多重排序 将表按年龄升序&#xff0c;年龄相同按入职时间降序 语法 select * from 表名 order by 字段名1 排序方式1&#xff0c;字段2 排序方式2; 排序方式 升序&#xff1a;ASC&…

在spring boot工程中使用Filter时,@WebFilter 注解不生效的问题分析和解决方案

1. 问题描述 首先编写一个Filter类并通过Component放入spring容器中&#xff0c;通过实现jakarta.servlet中提供的Filter接口完成过滤器的创建&#xff0c;代码如下。 import jakarta.servlet.*; import jakarta.servlet.annotation.WebFilter; import org.springframework.st…

学习threejs,使用TWEEN插件实现动画

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.PLYLoader PLY模型加…

TypeScript在现代前端开发中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 TypeScript在现代前端开发中的应用 TypeScript在现代前端开发中的应用 TypeScript在现代前端开发中的应用 引言 TypeScript 概述…

CTF-Crypto-简单加密

打开首页看题目 描述看起来是一段乱码&#xff0c;拉入随波逐流&#xff0c;未解决 e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA 观察字符串&#xff0c;末尾是AA&#xff0c;其中可能含有base64加密 找寻Ascll码表&#xff0c;发现A的Ascll是65&#xff0c;的Ascl…

MacOS下,如何在Safari浏览器中打开或关闭页面中的图片文字翻译功能

MacOS下&#xff0c;如何在Safari浏览器中打开或关闭页面中的图片文字翻译功能 在Mac上的Safari浏览器中&#xff0c;可以通过实况文本功能来实现图片中的文本翻译。关闭步骤具体步骤如下&#xff1a; 在浏览器地址栏&#xff0c;鼠标右击翻译按钮&#xff0c;然后点击“首选…

操作系统——虚拟存储器(含思维导图)

本教材为中国铁道出版社——操作系统&#xff08;第四版&#xff09;刘振鹏、张明、王煜著。本篇文章为第六章复习。 目录 思维导图&#xff1a; ​编辑一、虚拟存储器 1.理论基础 2.定义 二、分页虚拟存储管理 1.基本原理 2.缺页中断 3.页面置换 &#xff08;1&…

基于8.0 Update 3b 的ESXi-Arm Fling

很久没有更新过 ESXi-Arm 的版本了&#xff0c;博通旗下的 VMware 居然把它更新到了 8.0U3b。 下载地址&#xff1a;https://community.broadcom.com/flings 我准备使用离线更新&#xff0c;就没有下载 ISO&#xff0c;直接下载ESXi-Arm-Offline-Depot-2_00-dl.zip scp 上传…

python解析网页上的json数据落地到EXCEL

安装必要的库 import requests import pandas as pd import os import sys import io import urllib3 import json测试数据 网页上的数据结构如下 {"success": true,"code": "CIFM_0000","encode": null,"message": &quo…