PCA与协方差矩阵

article/2025/11/11 3:09:08

一、协方差矩阵


一个维度上方差的定义:


协方差的定义:

(a)

协方差就是计算了两个维度之间的相关性,即这个样本的这两个维度之间有没有关系。

协方差为0,证明这两个维度之间没有关系,协方差为正,两个正相关,为负则负相关。


协方差矩阵的定义:

对n个维度,任意两个维度都计算一个协方差,组成矩阵,定义如下

直观的对于一个含有x,y,z三个维度的样本,协方差矩阵如下


可以看出,对角线表示了样本在在各个维度上的方差。

其他元素表示了不同维度之间两两的关联关系。


二、协方差矩阵的计算

(1)先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,

(2)然后直接用新的到的样本矩阵乘上它的转置

(3)然后除以(N-1)即可‘


数学推导相对容易,样本矩阵中心化以后,样本均值为0,因此式a中每个维度无需减去均值,只需要进行与其他维度的乘法,

这样就可以用转置相乘实现任意两两维度的相乘。


三、矩阵相乘的“变换的本质”理解

A*B两个矩阵相乘代表什么?

A的每一行所表示的向量,变到B的所有列向量为基底表示的空间中去,得到的每一行的新的表示。

B的每一列所表示的向量,变到A的所有行向量为基底表示的空间中去,得到的每一列的新的表示。


三、PCA深入

PCA的目的是降噪和去冗余,是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。

样本矩阵的格式:

样本1 [特征a1,特征a2,特征a3,…..,特征an]

样本2 [特征a1,特征a2,特征a3,…..,特征an]

样本3 [特征a1,特征a2,特征a3,…..,特征an]

样本4 [特征a1,特征a2,特征a3,…..,特征an]

PCA后:r<n

样本1 [特征b1,特征b2,特征b3,…..,特征br]

样本2 [特征b1,特征b2,特征b3,…..,特征br]

样本3 [特征b1,特征b2,特征b3,…..,特征br]

样本4 [特征b1,特征b2,特征b3,…..,特征br]

直白的来说,就是对一个样本矩阵,

(1)换特征,找一组新的特征来重新表示

(2)减少特征,新特征的数目要远小于原特征的数目


我们来看矩阵相乘的本质,用新的基底去表示老向量,这不就是重新找一组特征来表示老样本吗???

所以我们的目的是什么?就是找一个新的矩阵(也就是一组基底的合集),让样本矩阵乘以这个矩阵,实现换特征+减少特征的重新表示。


因此我们进行PCA的基本要求是:

(1)第一个要求:使得样本在选择的基底上尽可能的而分散。

为什么这样?

极限法,如果在这个基底上不分散,干脆就在这个基地上的投影(也就是特征)是一样的。那么会有什么情况?


想象一个二维例子:

以下这一组样本,有5个样本,有2个特征x和y,矩阵是

[-1,-2]

[-1, 0]

[ 0, 0]

[ 2, 1]

[ 0, 1]

画图如下:


我现在是二维特征表示,x一个特征,y一个特征。我现在降维。

降成一维,我要选一个新的基底(特征)。

如果我选(1,0)作为基底,就是x轴嘛,然后我把这些样本投影到x轴,或者乘以[1,0]列向量。

得,里面好几个数都一样,分不出来了。


所以这就是为样本在基底上要尽可能分散了,这个分散不就是样本在这个“基底上的坐标”(这个基底上的特征值)的方差要尽可能大么


(2)第二个要求:使得各个选择的基底关联程度最小。

刚才是二维降一维,只选则一个一维基底就可以了,太拿衣服了。

考虑一个三维点投影到二维平面的例子。这样需要俩基底。

基底得一个一个找啊,先找第一个,要找一个方向,使得样本在这个方向上方差最大。

再找第二个基底,怎么找,方差最大?这不还是找的方向和第一个差不多么?那这两个方向表示的信息几乎是重复的。

所以从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的,因为相关性意味着两个字段不是完全独立,必然存在重复表示的信息。所以最好就是选择和第一个基底正交的基底。



那怎么找呢?不能随便写一个矩阵吧?答案肯定是要基于原来的样本的表示。

我们求出了原来样本的协方差矩阵,协方差矩阵的对角线代表了原来样本在各个维度上的方差,其他元素代表了各个维度之间的相关关系。

也就是说我们希望优化后的样本矩阵,它的协方差矩阵,对角线上的值都很大,而对角线以外的元素都为0。


现在我们假设这个样本矩阵为X(每行对应一个样本),X对应的协方差矩阵为Cx,而P是我们找到的对样本进行PCA变换的矩阵,即一组基按列组成的矩阵,我们有Y=XP

Y即为我们变化后的新的样本表示矩阵,我们设Y的协方差矩阵维Cy,我们想让协方差矩阵Cy是一个对角阵,那么我们先来看看Cy的表示


注意:

推导规程为了把X凑一起,我们用了Y Yt=((Y Yt)t)t=(Yt Y)t

把样本组织成行向量和列向量是一样的原来,最后结果只需要一个转置就变成一个格式了。把样本X组织成列向量,就要把基底P组织成行向量,就要写PX了


好了,我们退出了Cy的表示,最后的结果很神奇的成了一个熟悉的形式:方阵可对角化的表达式

让我们来回忆一下可对角化矩阵的定义,顺便也回忆了矩阵相似的定义:

(1)什么是可对角化和相似:如果一个方块矩阵 A 相似于对角矩阵,也就是说,如果存在一个可逆矩阵 P 使得 P −1AP 是对角矩阵,则它就被称为可对角化的。

(2)如何判断可对角化呢:我们再来回忆一下矩阵可对角化的条件:n × n 矩阵 A 只在域 F 上可对角化的,如果它在 F 中有 n 个不同的特征值,就是说,如果它的特征多项式在 F 中有 n 个不同的根,也就说他有n个线性无关的特征向量,这三条件是等价的,满足一个就可以对角化。

注意哦:有n个线性无关的特征向量并不一定代表有n个不同的特征值,因为可能多个特征向量的对于空间的权重相同嘛。。。但是n个不同的特征值一定有n个线性无关的特征向量啦。


C是啥呢,C是协方差矩阵,协方差矩阵是实对称矩阵,就是实数的意思,有很多很有用的性质

1)实对称矩阵不同特征值对应的特征向量,不仅是线性无关的,还是正交的。

2)设特征向量重数为r,则必然存在r个线性无关的特征向量对应于,因此可以将这r个特征向量单位正交化。

3) n阶实对称矩阵C,一定存在一个正交矩阵E,满足如下式子,即C既相似又合同于对角矩阵。(这里又温习了合同的概念哦)

由上面两条可知,一个n行n列的实对称矩阵一定可以找到n个单位正交特征向量,设这n个特征向量为e1,e2,…,en

我们将其按列组成矩阵:

则对协方差矩阵C有如下结论:


好了,PCA中,我们要找的这个变换矩阵,就是E!!!!!!因为用X乘E后,得到的矩阵是一个对角矩阵哦!



PCA算法步骤总结:

设有m条n维数据,这里比较糊涂就是按行组织样本还是按列组织样本,下面是按行组织样本:

1)将原始数据按行组成n行m列矩阵X,代表有n个数据,每个数据m个特征

2)将X的每一列(代表一个属性字段)进行零均值化,即减去这一列的均值

3)求出协方差矩阵C=1/n* XXT


4)求出协方差矩阵的特征值及对应的特征向量

5)将特征向量按对应特征值大小从上到下按列排列成矩阵,取前k列组成矩阵P

6)Y=XP即为降维到k维后的数据


按列组织是这样的,理解一下:

1)将原始数据按列组成n行m列矩阵X

2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值

3)求出协方差矩阵C=1/m*XXT
4)求出协方差矩阵的特征值及对应的特征向量

5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

6)Y=PX即为降维到k维后的数据



我们将其按列组成矩阵 :
            </div>

http://chatgpt.dhexx.cn/article/PfTo7CDO.shtml

相关文章

浅谈协方差矩阵2

在之前的博客中介绍过一次协方差矩阵&#xff1a; 浅谈协方差矩阵_Yunlong_Luo的博客-CSDN博客 这次希望在之前的基础上&#xff0c;把协方差矩阵介绍的更清楚一些&#xff0c;本文的很多素材来自于&#xff1a; A geometric interpretation of the covariance matrix 期望和…

浅析协方差矩阵

统计学的基本概念 概率论里面有几个基本的概念&#xff0c;分别是&#xff1a;样本的均值、方差、标准差。首先&#xff0c;我们给定一个含有n个样本的集合&#xff0c;下面给出这些概念的公式描述&#xff1a; 均值&#xff1a; 标准差&#xff1a; 方差&#xff1a; 均值描述…

协方差矩阵用途

协方差两个用途&#xff1a; 各有缺陷 第二个用途&#xff1a;马氏距离&#xff08;曼哈顿距离&#xff09; 例如 欧式距离定义 马氏距离&#xff1a; 马氏距离意义&#xff1a; 案例&#xff1a; 鸢尾花案例 随机向量的变换 实际案例&#xff1a; 随机变量的线性组合

协方差矩阵-Covariance Matrix

首先我们要明白&#xff0c;协方差实际是在概率论和统计学中用于衡量两个变量的总体误差,当然方差是协方差的一种特殊情况&#xff0c;即当两个变量是相同情况。它表示的是两个变量的总体的误差&#xff0c;这与只表示一个变量误差的方差不同。如果两个变量的变化趋势一致&…

协方差矩阵(Covariance Matrix)

群体均值和协方差矩阵定义 &#xff08;Population Mean and Covariance Matrix&#xff09; 1、学术定义 2、常规定义 协方差矩阵中每个元素的求法 用中文来描述&#xff0c;就是&#xff1a; 协方差(i,j)&#xff08;第i列的所有元素-第i列的均值&#xff09;*&#xff…

超全面的协方差矩阵介绍

阅读本文需要具备一定的线性代数基础&#xff0c;通过本文&#xff0c;你将对协方差矩阵有全面的理解。 定义 一组随机变量&#xff0c;共n个&#xff1a; X ( X 1 , X 2 , . . . , X n ) T \mathbf{X}(X_1,X_2,...,X_n)^T X(X1​,X2​,...,Xn​)T 两个随机变量的协方差&am…

统计篇(四)-- 协方差矩阵的理解

本文将针对协方差矩阵做一个详细的介绍&#xff0c;其中包括协方差矩阵的定义、数学背景与意义、计算公式的推导、几何解释&#xff0c;主要整理自下面两篇博客&#xff1a; peghoty-关于协方差矩阵的理解&#xff1a;http://blog.csdn.net/itplus/article/details/11452743协…

欧拉函数的两种求法

引入&#xff1a;互质的概念&#xff1a;如果 正整数 a 与b 之间只有一个公约数1 则称a与 b 互为质数。 欧拉函数的定义&#xff1a; 1-N 中 与N 互质的数的个数 记作 Phi&#xff08;N&#xff09; 在算数基本定理中任意自然数能进行质因数拆分&#xff0c;那么由容斥原理&a…

求欧拉函数的方法

求欧拉函数的一般方法&#xff1a; 1.我们知道一个素数p的欧拉函数f(p)p-1&#xff1b;那么p的k次幂&#xff0c;即np^k&#xff0c;则容易证明&#xff1a;f(n)p^k-p^(k-1)&#xff1b; 证明&#xff1a;已知少于p^k的数有p^k-1&#xff0c;其中与p^k不互质的数有p^(k-1)-1个&…

欧拉函数的求法(三种)

欧拉函数定义 求欧拉函数的方法 1.公式法 2.线性筛法 根据三条性质来解题的&#xff1a; //1、当p为质数的时候&#xff1a;phi(p)p-1 //2、当p与i互质时有: phi(p*i)phi(p)*phi(i) //3、当i%p0时有&#xff1a;phi(p*i)p*phi(i) 具体实现参考链接&#xff1a; 1.求欧拉函数…

欧拉函数算法

一、欧拉函数值 欧拉函数又称为Phi函数 欧拉函数的定义为&#xff1a;对于正整数n&#xff0c;他的欧拉函数值是不大于n的正整数中与n互质的正整数的个数&#xff08;互质&#xff1a;除1外没有其他最大公约数&#xff09;。 据此&#xff0c;可以得到求某个数欧拉值的代码&am…

数学知识:欧拉函数

文章目录 前言一、欧拉函数&#xff0c;欧拉定理二、例题&#xff0c;代码AcWing 873. 欧拉函数AC代码 AcWing 874. 筛法求欧拉函数本题解析AC代码 三、时间复杂度 前言 复习acwing算法基础课的内容&#xff0c;本篇为讲解数学知识&#xff1a;欧拉函数&#xff0c;关于时间复…

欧拉函数相关概念

一、欧拉函数 给定正整数n&#xff0c;欧拉函数φ(n)不大于n且和n互质的正整数的个数(包括1)。φ(1)1 φ ( n ) Σ i 1 n [ g c d ( i , n ) 1 ] \varphi \left( n \right) \varSigma_{i1}^{n}\left[ gcd\left( i,n \right) 1 \right] φ(n)Σi1n​[gcd(i,n)1] 完全余数集…

欧拉函数与欧拉定理

转载请说明出处&#xff1a;http://blog.csdn.net/leader_one/article/details/77619762 说在前面 按照惯例&#xff0c;出于尊重&#xff0c;还是简单介绍一下这位多产的学术伟人 莱昂哈德欧拉&#xff08;Leonhard Euler &#xff0c;1707年4月15日&#xff5e;1783年9月1…

欧拉函数及模板

欧拉函数 什么是欧拉函数怎么计算欧拉函数欧拉函数三种常用模板素因数分解求欧拉函数欧拉函数值打表欧拉筛型欧拉函数 什么是欧拉函数 欧拉函数是小于等于x的整数中与x互质的数的个数&#xff0c;一般用φ(x)表示。特殊的&#xff0c;φ(1)1。 例如&#xff0c;φ(12)4 {1,5,7…

如何求欧拉函数~转载

三、欧拉函数 请思考以下问题&#xff1a; 任意给定正整数n&#xff0c;请问在小于等于n的正整数之中&#xff0c;有多少个与n构成互质关系&#xff1f;&#xff08;比如&#xff0c;在1到8之中&#xff0c;有多少个数与8构成互质关系&#xff1f;&#xff09; 计算这个值的方法…

欧拉函数公式证明

请思考以下问题&#xff1a; 任意给定正整数n&#xff0c;请问在小于等于n的正整数之中&#xff0c;有多少个与n构成互质关系&#xff1f;&#xff08;比如&#xff0c;在1到8之中&#xff0c;有多少个数与8构成互质关系&#xff1f;&#xff09; 计算这个值的方法就叫做欧拉函…

欧拉函数

原文链接&#xff1a;https://zh.m.wikipedia.org/zh/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0 欧拉函数 本文介绍的是小于或等于 n的正整数中与 n 互质的数的数目。关于形式为 的函数&#xff0c;详见「 欧拉函数(复变函数)」。 当 n为1至1000的整数时 的值 在数论中&#xff0…

数学知识——欧拉函数

1. 欧拉函数 定义&#xff1a;欧拉函数ψ(n) 表示1~n中与n互质的数的个数 公式&#xff1a;如果一个数可以被分解质因式为N p1α1 *p2α2……pkαk 则ψ(n) n(1 - 1/p1)(1 - 1/p2)…(1 - 1/pk) 公式由容斥原理证明&#xff0c;证明略 算法实现思路&#xff1a; 利用求一个数…

数论基础——欧拉函数

欧拉函数&#xff1a; 就是对于一个正整数n&#xff0c;小于n且和n互质的正整数&#xff08;包括1&#xff09;的个数&#xff0c;记作φ(n) 。 欧拉函数的通式&#xff1a;φ(n)n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn) 其中p1, p2……pn为n的所有质因数&#xff…