《PCA 原理推导》18-5线性变换生成的随机变量y_i和y_j的协方差 公式解析

news/2024/11/17 15:38:55/

本文是将文章《PCA 原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。


公式 18 - 5 18\text{-}5 18-5 的内容如下:

cov ( y i , y j ) = a i T Σ a j , i , j = 1 , 2 , … , m \text{cov}(y_i, y_j) = a_i^T \Sigma a_j, \quad i, j = 1, 2, \dots, m cov(yi,yj)=aiTΣaj,i,j=1,2,,m


解释公式 18 - 5 18\text{-}5 18-5

背景与意义

公式 18 - 5 18\text{-}5 18-5 描述了通过线性变换生成的随机变量 y i y_i yi y j y_j yj 的协方差关系。在主成分分析PCA)中,这个公式用于衡量不同主成分之间的线性相关性。

主成分分析的目标是寻找一组新的坐标轴(即主成分),使得这些轴之间相互正交(线性无关),从而消除原始数据中不同特征之间的相关性。这一过程依赖于协方差公式来分析线性相关性。


公式符号解析
  1. cov ( y i , y j ) \text{cov}(y_i, y_j) cov(yi,yj) 表示变换后随机变量 y i y_i yi y j y_j yj 的协方差。协方差反映了两个变量之间的线性相关性。如果协方差为零,说明这两个变量是线性无关的。

  2. Σ \Sigma Σ 表示原始随机向量 x x x 的协方差矩阵,定义为:
    Σ = E [ ( x − μ ) ( x − μ ) T ] \Sigma = \mathbb{E}[(x - \mu)(x - \mu)^T] Σ=E[(xμ)(xμ)T]

    它是一个 m × m m \times m m×m 的对称矩阵,描述了原始数据的各个特征之间的线性关系。

  3. a i , a j a_i, a_j ai,aj
    表示用于线性变换的权重向量,分别定义了第 i i i 和第 j j j 个主成分的方向。

  4. a i T Σ a j a_i^T \Sigma a_j aiTΣaj
    这是协方差矩阵 Σ \Sigma Σ 的二次型形式,表示将协方差矩阵作用于两个方向 a i a_i ai a j a_j aj 后得到的协方差值。


公式推导

假设通过线性变换得到的随机变量为:
y i = a i T x , y j = a j T x y_i = a_i^T x, \quad y_j = a_j^T x yi=aiTx,yj=ajTx

y i y_i yi y j y_j yj 的协方差定义为:
cov ( y i , y j ) = E [ ( y i − E ( y i ) ) ( y j − E ( y j ) ) ] \text{cov}(y_i, y_j) = \mathbb{E}[(y_i - \mathbb{E}(y_i))(y_j - \mathbb{E}(y_j))] cov(yi,yj)=E[(yiE(yi))(yjE(yj))]

  1. 代入 y i = a i T x y_i = a_i^T x yi=aiTx y j = a j T x y_j = a_j^T x yj=ajTx
    cov ( y i , y j ) = E [ ( a i T x − E ( a i T x ) ) ( a j T x − E ( a j T x ) ) ] \text{cov}(y_i, y_j) = \mathbb{E}[(a_i^T x - \mathbb{E}(a_i^T x))(a_j^T x - \mathbb{E}(a_j^T x))] cov(yi,yj)=E[(aiTxE(aiTx))(ajTxE(ajTx))]

  2. 利用期望的线性性质:
    由于 a i a_i ai a j a_j aj 是常量向量,可以将其从期望符号内提取出来:
    cov ( y i , y j ) = a i T E [ ( x − E ( x ) ) ( x − E ( x ) ) T ] a j \text{cov}(y_i, y_j) = a_i^T \mathbb{E}[(x - \mathbb{E}(x))(x - \mathbb{E}(x))^T] a_j cov(yi,yj)=aiTE[(xE(x))(xE(x))T]aj

  3. 协方差矩阵的定义:
    根据协方差矩阵的定义:
    Σ = E [ ( x − E ( x ) ) ( x − E ( x ) ) T ] \Sigma = \mathbb{E}[(x - \mathbb{E}(x))(x - \mathbb{E}(x))^T] Σ=E[(xE(x))(xE(x))T]

    将其代入上式:
    cov ( y i , y j ) = a i T Σ a j \text{cov}(y_i, y_j) = a_i^T \Sigma a_j cov(yi,yj)=aiTΣaj


几何意义
  1. 协方差的几何解释:

    • 公式 a i T Σ a j a_i^T \Sigma a_j aiTΣaj 描述了原始数据 x x x 在两个方向 a i a_i ai a j a_j aj 上的投影之间的线性相关性。
    • 如果协方差为零,即 cov ( y i , y j ) = 0 \text{cov}(y_i, y_j) = 0 cov(yi,yj)=0,说明 y i y_i yi y j y_j yj 是线性无关的(在 PCA 中,这对应于两个主成分是正交的)。
  2. PCA 中的作用:

    • PCA 的目标是通过选择一组正交的 a i a_i ai a j a_j aj,使得变换后的主成分 y i y_i yi y j y_j yj 的协方差为零(线性无关)。
    • 如果协方差不为零,说明 y i y_i yi y j y_j yj 之间存在某种线性相关性,需要重新调整主成分方向以消除这种相关性。

举例说明

假设数据 x x x 是二维随机向量,其协方差矩阵为:
Σ = [ 4 2 2 3 ] \Sigma = \begin{bmatrix} 4 & 2 \\ 2 & 3 \end{bmatrix} Σ=[4223]

选择两个方向向量:
a 1 = [ 1 0 ] , a 2 = [ 0 1 ] a_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \quad a_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix} a1=[10],a2=[01]

y 1 = a 1 T x y_1 = a_1^T x y1=a1Tx y 2 = a 2 T x y_2 = a_2^T x y2=a2Tx,它们的协方差为:
cov ( y 1 , y 2 ) = a 1 T Σ a 2 \text{cov}(y_1, y_2) = a_1^T \Sigma a_2 cov(y1,y2)=a1TΣa2

计算过程:

  1. 先计算 Σ a 2 \Sigma a_2 Σa2
    Σ a 2 = [ 4 2 2 3 ] [ 0 1 ] = [ 2 3 ] \Sigma a_2 = \begin{bmatrix} 4 & 2 \\ 2 & 3 \end{bmatrix} \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 2 \\ 3 \end{bmatrix} Σa2=[4223][01]=[23]

  2. 再计算 a 1 T Σ a 2 a_1^T \Sigma a_2 a1TΣa2
    a 1 T Σ a 2 = [ 1 0 ] [ 2 3 ] = 2 a_1^T \Sigma a_2 = \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} 2 \\ 3 \end{bmatrix} = 2 a1TΣa2=[10][23]=2

因此, y 1 y_1 y1 y 2 y_2 y2 的协方差为 2 2 2,说明它们之间存在相关性。


公式 18 - 5 18\text{-}5 18-5 的作用
  1. 衡量主成分之间的相关性:
    公式提供了一种计算变换后随机变量之间协方差的方法。
  2. 验证主成分的正交性:
    PCA 中,我们希望通过选择正交的方向向量 a i a_i ai a j a_j aj,使得协方差为零,从而消除主成分之间的相关性。
  3. 数学基础:
    公式直接体现了协方差矩阵的作用,它描述了原始数据特征之间的相关性如何通过线性变换传播到新特征空间。

总结

公式 18 - 5 18\text{-}5 18-5 描述了主成分之间的协方差,它是主成分分析的核心之一。通过选择合适的方向向量 a i a_i ai a j a_j ajPCA 可以确保主成分彼此正交(协方差为零),从而实现降维和特征去相关的目标。这一公式体现了线性代数中二次型和协方差矩阵的深刻联系。


http://www.ppmy.cn/news/1547748.html

相关文章

Xss挑战(跨脚本攻击)

Xss挑战(跨脚本攻击) 首先在kali中下载xss 可以使用命令docker search xss-labs 下载xss docker pull vulfocus/xss-labs 运行容器,映射到8088端口加载镜像 Docker run -dt -p 8088:80 vulfocus/xss-labs 用浏览器访问127.0.0.1:8088 开启…

【大数据学习 | flume】flume之常见的channel组件

Channel是连接Source和Sink的组件,大家可以将它看做一个数据的缓冲区(数据队列),它可以将事件暂存到内存中也可以持久化到本地磁盘上, 直到Sink处理完该事件,Flume对于Channel,则提供了Memory C…

【自学笔记】神经网络(2) -- 模型评估和优化

文章目录 划分数据集训练集和测试集训练误差 测试误差交叉验证测试集 偏差与方差偏差方差表现基准 学习曲线error - train set sizeerror - degree of polynomial 数据增强迁移学习项目的完整周期样本不平衡问题精确率和召回率精确率与召回率的平衡 划分数据集 我们当然希望把所…

Linux 批量配置互信

批量配置SSH互信脚本 #!/bin/bash# 定义目标机器列表 machines( "192.168.122.87" "192.168.122.89" "192.168.122.90" ) set -o errexit # 设置默认的用户名和密码 default_username"root" default_password"111111"# 读取…

接口压力测试、性能测试工具

接口压力测试、性能测试工具 文章说明核心源码1.0版本--采用浏览器发送ajax请求进行性能测试2.0版本--结合Java模拟压力测试功能 运行截图源码下载 文章说明 使用jmeter有些地方我觉得有点小复杂,我写了一个小工具来进行接口的简单性能和压力测试 核心源码 1.0版本…

python习题练习

python习题 编写一个简单的工资管理程序系统可以管理以下四类人:工人(worker)、销售员(salesman)、经理(manager)、销售经理(salemanger)所有的员工都具有员工号,工资等属性,有设置姓名,获取姓名,获取员工号,计算工资等…

怎样遵守编程规范,减少和控制C++编程中出现的bug?

遵守编程规范和最佳实践是减少和控制 C 编程中出现 bug 的重要手段。以下是一些具体的建议和策略,帮助你编写更健壮、更易于维护的 C 代码。 1. 遵循 C 标准和最佳实践 使用现代 C 特性:尽可能使用 C11 及之后的标准,避免使用过时的特性和库…

SpringBoot整合FreeMarker生成word表格文件

SpringBoot整合FreeMarker生成word表格文件(使用FTL模板)_freemarker ftl模板-CSDN博客 Freemarker基本指令语法和集合指令语法SpringBoot整合FreeMarker生成word表格文件(使用FTL模板)_freemarker ftl模板-CSDN博客https://zhua…