特征值分解与奇异值分解原理与计算

【机器学习】 特征值分解、奇异值分解与PCA的原理 1、PCA的原理 设n维随机变量X, 其对应的协方差矩阵是C 基于正交矩阵P,对随机变量X做正交变换,得到变量Y,对应协方差矩阵为R,如下所示。 C是X的协方差矩阵,R是Y的协方差矩阵,二者都是一个对称矩阵 协方差矩阵的对角线以外的值都是n维变量各分量之间的相关性的度量值,当值为0时表示两个分量无关,即相互独立,此时我们得到的变量具有很好的统计特性,便于处理,即我们的目标是............... 阅读详情

(一)特征值

如果一个非零向量v是方阵A的特征向量,将一定可以表示成下面形式,而λ是特征向量v对应的特征值:

特征值分解是将一个矩阵分解成下面的形式:

其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。一个矩阵的一组特征向量是一组正交向量。

【练习题】求解矩阵A的特征值与特征向量。




方阵的特征值表示什么含义呢,我们通过一组向量图表示。初始状态下,i(红色)和j(蓝色)表示二维坐标平面下的两个单位向量,v是空间上任意一条向量(绿色)


用方阵A左乘向量v之后,得到一个新的向量Av(紫色)


接下来,在二维空间上,手动移动向量v,移动到某一时刻,向量v(绿色)与向量Av(紫色)发生了重合,且Av的向量摸大于v的模(下图左),再继续移动v,又会发现在v与Av的另一个重合时刻,但此时|Av|<|v|(下图右)


这两个时刻,v与Av发生了重合,即两个向量方向一致,大小差了一个lambda倍,也就是上面所提到的

这里的lambda就是特征值(两个特征值,一个大于1,一个小于1),这两个时刻对应的v向量,就是矩阵A的特征向量


特征值存在以下几个性质:

设n阶矩阵A=(aij) 的特征值为λ1,λ2,...λn
(1)λ1+λ2+...+λn = a11+ a22+…+ann,trail(A)=特征值的和。
(2)λ1λ2… λn =|A|,特征值的乘积=A的行列式

若λ是方阵A的特征值
(1)λ^2是A^2的特征值
(2)A可逆时,λ^(-1)是A^(-1)的特征值
(3)kλ是kA的特征值,k∈R。

设方阵A的m个特征值λ1,λ2 ,...,λm,与之对应的特征向量是p1,p2,...,pm,若λ1,λ2 ,...,λm各不相等,则p1,p2 ,...,pm线性无关。(不同特征值对应的特征向量线性无关),实对称矩阵不同特征值的特征向量相互正交。

(二)特征值分解



【注】因为矩阵M是对称的,所以这个变换是一个对x,y轴的方向一个拉伸变换

当M非对称时,在平面上对一个轴进行的拉伸变换(蓝色箭头所示)。如果要描述好一个变换M,那就描述好这个变换主要的变化方向。


分解得到的Σ矩阵是一个对角阵,若Σ里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要变化到次要变化排列)

当矩阵是高维的情况下,那么这个矩阵A就是高维空间下的一个线性变换,这个变换也同样有很多的变换方向,通过特征值分解得到的前N个特征向量,对应了矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。

也就是说:提取这个矩阵最重要的特征。

特征值分解的局限:变换的矩阵必须是方阵!!

(三)奇异值与奇异值分解

在现实的世界中,遇到的大部分矩阵都不是方阵,比如说有N个学生,每个学生有M科成绩;有N个用户,每个用户购买了M件商品,这样形成的一个N * M的长方形矩阵。

怎样描述这样普通的矩阵的重要特征?

可以使用奇异值分解来解决


A是一个N * M的矩阵,那么得到的U是一个N * N的方阵(里面的向量是正交的,称为左奇异向量),Σ是一个N * M的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值),VT是一个N * N的矩阵(里面的向量也是正交的,称为右奇异向量)

               


右奇异向量求解:矩阵A左乘转置AT,将会得到一个方阵(m*m),我们用这个方阵求特征值和特征向量,得到的vi就是右奇异向量


根据上面得到的特征值λ,计算奇异值σ,以及左奇异向量u。


【练习题】 求解A的奇异值






可以使用Python编程实现,numpy包中存有直接计算奇异值的方法np.linalg.svd(matrix),实例如下:


奇异值σ与特征值类似,矩阵Σ中也是从大到小排列,而且σ的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前r大的奇异值来近似描述矩阵,这里定义一下部分奇异值分解,这里r是一个远小于m、n的数。

右边的三个矩阵相乘的结果将会是一个接近于A的矩阵。而这三个矩阵的“面积”之和要远小于原始的矩阵A,可以压缩空间来表示原矩阵A,只存储三个矩阵U、Σ、V即可。







QR算法:从特征值到奇异值分解的数值计算核心原理与实践 特征值与奇异值是线性代数和数值计算中的核心概念,广泛应用于数据分析、机器学习、信号处理等领域。特征值描述了矩阵在其特征向量方向上的缩放因子,而奇异值则揭示了矩阵在不同输入与输出正交基上的最大拉伸程度。QR算法作为一种稳定且高效的数值方法,通过迭代的正交相似变换,将矩阵逐步转化为上三角或对角形式,从而逼近其特征值。其核心在于利用正交变换(如Householder反射)的数值稳定性,避免了误差放大,并结合位移技术加速收敛。在工程实践中,QR算法不仅是求解特征值问题的基石,其思想也延伸至奇异值分解(SVD),通过 阅读详情

相关推荐

基于matlab的矩阵奇异值(SVD)分解

目录 1 计算原理 1.1求解V 1.2求解D 1.3求解U 2 MATLAB程序 2.1注意 3联系方式 1 计算原理 设矩阵A的大小m*n(m>n),A = UD 1.1求解V 首先求出的特征值及特征值,对应的正交单位特征向量。将的特征值从大到小按顺序排列,对应的正交特征向量也要按特征值的顺序排列。排列好的正交的特征向量即为V = ......

红茶绿茶和奶茶的博客 2万+

特征值分解(Eigen Value Decomposition,EVD)、奇异值分解(Singular Value Decomposition,SVD)原理、公式推导及应用

==

CCC的专栏 1万+

03特征值分解

从方程 A v = λ v 变形得到:(A - λI) v = 0 为了求解 v,需要 A - λI 是。将每个特征值代入(A - λI) v = 0 求解对应的特征向量。v称为矩阵A的特征向量Eigenvector。λ称为矩阵A的特征值Eigenvalue。

weixin_44455665的博客 1134

特征值分解

特征分解 参考资料:《深度学习》2.7 特征分解 特征分解(eigendecomposition):将矩阵分解成一组特征向量和特征值,是使用最广泛的矩阵分解之一。 特征向量(eigenvector):对于方阵A来说,是指与A相乘后相当于对该向量进行缩放的非零向量v。 Av=λv≠ Av = \lambda v \ne Av=λv​= 特征值(eigenvalue):上式中的 λ 如果v是A的特征向量,那么任何缩放后的向量sv(s非零)也是A的特征向量。所以通常只考虑单位特征向量。 不是每一个矩阵都可

weixin_46744571的博客 2273

奇异值分解(SVD)基础概念及MATLAB仿真

奇异值分解(singular value decomposition,简称SVD)不仅广泛应用于机器学习领域,也在控制理论中有着广泛的应用。本文主要介绍SVD的基本原理。 一、预备知识 1.1 特征值与特征向量 设 A 是n阶方阵,如果存在数λ和非零n维列向量 x,使得 Aα=λα 成立,则称 λ 是矩阵A的一个特征值(characteristic value),而α是矩阵A对应于特征值λ的特征向量(Eigenvector)。 1.2 幺正矩阵(酉矩阵)(Unitary Matrix) 泛泛来讲,如果一个n

Wendy的博客 1万+

【SVD】奇异值分解 -- 学习笔记

参考资料:数值分析 若A为Hermite阵, 可用-酉相似变换-将其化为对角形式:Q∗AQ=ΛQ^{*}AQ=\LambdaQ∗AQ=Λ,即得到谱分解,也就是特征值分解; 谱分解保持矩阵的秩和特征值不变。 若A非Hermite阵, 可用-初等变换-化为比较简单的对角形式, A=P[I000]QA=P\begin{bmatrix}I&0\\0&0\end{bmatrix}QA...

萝卜丝儿皮尔 2123

【MATLAB学习】特征值分解,奇异值分解,LU分解,QR分解及Chollesky分解

特征值分解 如果有一个矢量ν和一个常数λ,使得方阵A满足Aν=λν,则λ称为特征值,而v成为特征矢量 矩阵的特征值分解调用函数eig [v,d]=eig(a),得到矩阵a的特征值对角阵d和特征矢量v 若为两个矩阵的话,求广义特征值: [v,d]=eig(a,b) 奇异值分解 如果存在两个矢量u、v及一常数σ,使得矩阵A满足: Av=σu; A'u=σv;则σ称为...

Q小鑫 7603

从零开始的数值分析--矩阵特征分解

# 导入numpy库,用于进行科学计算 import numpy as np # 导入matplotlib库,用于数据可视化 import matplotlib.pyplot as plt # 导入scipy库,用于科学计算和工程计算 import scipy as sp # 导入sympy库,用于符号数学计算 import sympy as sym ## 约定内容 decimalNumber = 6 ##小数位数 !!!观前提醒,本章对于线性代数功底有一定要求,如果有可能还可以适当了解一下高

qq_65711983的博客 1642

奇异值分解SVD

奇异值分解在降维领域应用广泛,可用在主成分分析PCA、线性判别分析LDA等,对于数据处理至关重要。

weixin_45972476的博客 968

C#实现奇异值分解算法(SVD)及完整源代码

奇异值分解算法(SVD)是线性代数中的一种重要的矩阵分解方法,它可以将一个矩阵分解为三个矩阵的乘积,即 A = U * S * V^T。S 是一个对角矩阵,它的对角元素是奇异值,表示矩阵 A 在经过旋转后的缩放变换。在 C# 中实现 SVD 算法,可以使用 MathNet.Numerics 库提供的 Svd 类来实现。可以看到,计算出的左奇异矩阵、奇异值和右奇异矩阵与 MathNet.Numerics 库提供的结果基本一致,证明了我们实现的奇异值分解算法的正确性。

pytorchCode的博客 787

安卓风控对抗实战:如何用AOSP定制ROM绕过Momo、AIDA64等检测(从环境搭建到设备画像)

本文详细解析了如何通过定制AOSP ROM绕过Momo、AIDA64等安卓风控检测工具的设备指纹识别。从环境搭建到硬件参数修改,再到内核级特征混淆,提供了一套完整的底层对抗方案,显著提升设备伪装通过率。

weixin_30687051的博客 490

奇异值分解(SVD)

一、首先,奇异值分解与普通的矩阵分解的区别: 普通矩阵分解要求矩阵是一个方阵,行列数目相等,对于实际应用中出现的非方阵、非对称的矩阵进行分解,引入了奇异值分解 (Singular Value Decomposition)。 普通矩阵的分解,就是线性代数中求解特征值和特征向量的过程。 其中U的列向量是特征向量,Λ 是对角矩阵,Λ 对角元素是对应特征向量的特征值。 二、奇异值分解S...

ThorKing01的博客 1570

5分钟搞定Nano-Banana图片编辑API对接:从Base64编码到生成图片全流程

本文详细介绍了如何快速对接Nano-Banana图片编辑API,基于gemini-2.5-flash-image-preview模型,从环境准备、Base64编码到API调用的全流程。通过实战示例和优化技巧,帮助开发者高效集成AI图片处理能力,提升产品竞争力。

dog123的博客 260

奇异值分解

本文内容参考《Linear Algebra and Its Applications》中译本《线性代数及其应用》原书第五版 一个可对角化矩阵A,A可以分解为,D为一个对角矩阵,主对角线元素是A的特征值,而P的列是各个特征值对应的特征向量,从而将A分解为了A的特征值与特征向量。 但是并不是每一个矩阵都有上述的分解,所以引入奇异值分解,对于大部分矩阵,奇异值分解是存在的。 奇异值分解将原矩阵分解...

BTboay 1512

力软敏捷开发框架源码7.0.6旗舰版 JNPF开发平台3.4.5 企业版 旗舰版

JNPF作为作为一款深受用户喜爱的低代码产品,凭借雄厚的科研技术力量、丰富的软件开发项目经验、严谨的项目开发流程和高质量的售后服务,已成功帮助千家企业完成数字化项目,建立了覆盖不同行业客户和不同发展阶段的软件产品服务体系。

huoooos0的博客 1839

AMD MI50 Linux ROCm 6.4 手动编译与大模型推理实战

GPU加速计算是现代AI推理的核心基础,其性能依赖于硬件架构、驱动栈与运行时环境的深度协同。ROCm作为AMD开源GPU计算平台,采用‘自下而上’的Linux生态集成路径,强调对上游内核、编译器与固件的强耦合。MI50基于Vega 20(gfx900)架构,虽具备32GB HBM2高带宽显存与14.7 TFLOPS FP16算力,但因ROCm官方支持策略转向CDNA架构,自6.5版本起被移出支持列表,仅ROCm 6.4仍提供实验性兼容——这使其成为Linux下部署私有大模型的关键‘最后一班船’。本文围绕MI

weixin_32770423的博客 369

(全面)矩阵分解相关知识总结

第一次进行综合性的知识总结,作为一个参考手册供需要的时候进行查阅矩阵分解(Matrix decomposition),是将一个矩阵拆解为数个矩阵的乘积的运算。通过矩阵分解,将一个复杂的矩阵用更小更简单的几个矩阵来表示,简化计算,从复杂的数据中提取出相对重要的特征信息,实现信息抽象。在图像处理,模式识别,自然语言处理中应用广泛。依照使用目的和适用范围不同,大致分为如下几种:特征值分解(Eigenvalue decomposition,EVD),又称为谱分解(Spectral decomposition),是将

YT学习记录 2270

Win11家庭版彻底关闭Hyper-V的3种方法(实测有效)

本文详细介绍了Win11家庭版彻底关闭Hyper-V的3种实测有效方法,解决与VMware的兼容性问题。包括命令行禁用虚拟化功能、微软官方工具DG_Readiness深度清理以及组策略与功能组件联用方案,帮助用户高效禁用Hyper-V并优化系统性能。

weixin_33728268的博客 2670

numpy矩阵的特征值和特征向量,奇异值分解

1. 特征值和特征向量 对于n阶方阵A,如果存在数a和非零n维列向量x,使得Ax=ax,则称a是矩阵A的一个特征值,x是矩阵A属于特征值a的特征向量 eg1: import numpy as np A = np.mat('1 6 3 7;3 8 4 6;1 4 9 5;6 8 3 5') print('原矩阵:A=\n',A) #提取特征值,特征向量 eigvals,eigvecs = np.l...

a1040193597的博客 2475

LVGL 拨盘菜单(Dial Menu)

h。

摸鱼专家 191

零基础DSP实战TMS320F28035:第九节,ADC比较器&EPWM

ADC比较器框图如下所示:-电压-----------------------------输出-电压A>电压B------------------ 1-电压A

sinat_30943509的博客 2535
上一篇: 协方差与样本相关性
下一篇: eclipse maven项目,如何导出使用的依赖jar包
奋斗的小炎
博客等级 码龄16年 88粉丝 38原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值