谈主成分分析/因子分析中的特征值“矩阵近似”
创始人
2024-04-28 11:20:29
0次

主成分分析和因子分析是数据降维的常用手段,其中以特征值为载体,在不断降维“近似”原本的协方差矩阵。

CSDN中一些文章在介绍这个问题或者叫“特征值分解”时,讲得都比较学术化,今天用一个小例子,还是面向新人,来引导理解“特征值分解”和“矩阵近似”(图像近似 也是同样的原理)。

在主成分分析和因子分析中,都是从协方差矩阵入手的。(PS:有的人会说数据先单位化,然后求出相关矩阵,随后从相关矩阵入手。其实,数值上是这样算,但是原理说的不对。主成分分析和因子分析的入手点一定是协方差矩阵,之所以能够使用相关系数矩阵,那是因为单位化后的数据,它的协方差矩阵和相关系数矩阵是相等的。)

咱们还是先介绍例子,然后再讲原理。如果你的理论基础好,后面的原理一看就明白了。

有一个单位化后的协方差矩阵如下:

10.80.6
0.810.4
0.60.41

它的3个特征值分别是如下:

特征值2.214934720.62264180.16242348

3个特征值对应的单位化的特征向量如下(每一列对应一个特征值,与上面的特征值相对应):

特征向量
0.6345775-0.15497890.75716113
0.5843738-0.5449251-0.6013018
0.50578520.82403773-0.2552316

我们知道,原始矩阵可以使用特征向量矩阵加上特征值矩阵进行等价计算,也就是下面的公式:

A=P*\Lambda *P^{-1}

其中,P 是这个矩阵 A 的特征向量组成的矩阵,Λ 是特征值组成的对角矩阵,Λ里面的特征值可以由大到小排列后面用。

由于原始矩阵A是对角矩阵,所以,由特征向量组成的矩阵P是正交矩阵。所以,P的逆矩阵P^(-1)就是P的转置矩阵P'。

这样,上面的公式就变为:

A=P*\Lambda *P'

下面开始对原始协方差矩阵A的“近似”实验。

当我们用到全部3个特征值和对应的特征向量来计算时,这是一个100%对原始矩阵A进行了还原,即

 这个计算下得到的就是原始的矩阵A:

10.80.6
0.810.4
0.60.41

下面,我们不用3个特征值和特征向量,减少为用2个特征值和对应的特征向量,也就是:

 这个计算下得到的就是对原始矩阵A只采用2个特征值和特征向量进行近似的结果,近似的结果如下:

0.9070.8740.631
0.8740.9410.375
0.6310.3750.989

最后,我们不用2个特征值和特征向量,减少为只用1个特征值和对应的特征向量,也就是:

 这个计算下得到的就是对原始矩阵A只采用1个特征值和特征向量进行近似的结果,近似的结果如下:

0.8920.8210.711
0.8210.7560.655
0.7110.6550.567

可以看到,对原始矩阵A的“近似”效果来看,只采用1个特征值来近似,图像有点失真的太多了。而采用2个特征值来近似的矩阵结果,矩阵近似的还算可以。

接下来,谈一下采用2个特征值来近似的矩阵结果的方差解释占比为多少?用近似矩阵的主对角线求和=0.907+0.941+0.989=2.838。而原始矩阵A的主对角线求和=1+1+1=3。所以,近似矩阵的方差解释率为 2.838/3=94.6%,这个数值也就是最大的2个特征值之和除以3的结果,即 (2.21493472+0.6226418)/3=94.6%。

这就是利用特征值对原始协方差矩阵进行不同“像素”近似的结果。

所以,关于数据降维,我们可以从多个角度去理解这件事,而上面提到的比较直观的矩阵“近似”的角度,从学术上讲不一定很严谨,但是对于给新手一个直观的感性认识,那是相当有帮助的,供新人参考。

  (An Actuary)

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...